Я только что прочитал какой-то вопрос интервью в Интернете, и мне стало любопытно решение.
Проблема такая.
Дан список чисел и функция rand(0,1), которая возвращает случайное целое число от 0 до 1. Предоставьте алгоритм для случайной сортировки заданного списка на основе вывода функции rand(), которую следует вызвать. один раз для каждого числа в списке.
Кажется, просят сгенерировать случайное число только с 0 и 1 для перемешивания. И я придумал это решение.
int random(int array_index, int array size)
{
return (array_index * 41 * (array_size + rand(0,1)) % array_size;
}
Но я чувствую, что этого недостаточно, так как это зависит от array_index.
У кого-нибудь есть лучший ответ на это?