Не получается сгенерить случайную перестановку чисел Она должна зависеть от ключа, чтоб можно было второй раз сгенерить такую же. Если кто сталкивался, подскажите.
Сам тут новичек, но постараюсь ответить... Что значит случайная перестановка чисел от ключа? Есть исходная последовательность чисел и некий ключ, нужно получить на выходе хеш из чисел? Без обратного преобразования, естесно? Для этого есть множество математических алгоритмов хеширования. Или используйте ключ для запуска генератора псевдослучайных чисел, тогда при запуске с разным ключем последовательность будет каждый раз разной, затем хорьте с заданной последовательностью чисел. Рандомайзер алгоритмов тоже великое множество.
неее, вот есть последовательность чисел, например, 1, 2, 3, 4, ... , 100 и получили какуюто перестановку этих чисел, но так, чтоб я смог при необходимости еще раз из первой последовательности получить такую же перестановку.
вот, только что повнимательнее прочитал ваше сообщение. я согласен, можно использовать ключ для генератора псевдослучайных чисел, и имея исходную последовательность както сделать перестановку, но как?) У меня в голове чтото ничего не рождается
Любая перестановка -- произведение транспозиций, генерируй например 100 пар чисел (i,j), и представляй ее, как произведение этих транспозиций.
promtpol Алгоритм перестановки можно взять здесь. В параметре k передается номер перестановки (меняется от 0 до !размер_массива). Естественно при одинаковых k перестановки будут одинаковые.
подскажите, пожалуйста, а как решить проблему, когда по номеру нужно получить перестановку элементов 0, 1 длины n например. Т.е. если n=3, перестановки 000 001 ... 111 то по номеру два нужно получить 001? Подскажите плиз.