Функция воспроизведения в случайном порядке определяется какфункция воспроизведения в случайном порядке в C
Shuffle(A[n-1],A[n-2].....A[1],A[0]) = A[n-2]A[n-3]......A[1],A[0],A[n-1]
, где я в А [я] представлять I-й бит в двоичном представлении индекса в массиве.
Например, перемещение третьего элемента в массиве является пятым элементом массива. i.e ..
Shuffle (A [010]) = A [100]. (Предполагая размер массива как 8 элементов)
Мы видим, что n-1-й бит '0' оставлен круговым сдвигом. Таким образом, значение A [4] копируется в A [2]. Можем ли мы выполнить это без использования временного массива для всех элементов массива ...
Я хочу реализовать эту функцию в простой простой C, но я просто не мог понять, как изменить бит ...
Предложения пожалуйста ...
это домашнее задание? –
@John: nopes ... я мог бы сделать это с использованием временного массива, но я хотел знать, можем ли мы сделать это без временного массива ... – Flash