У меня есть случай использования, где нужно карабкаться вход таким образом, что:Эффективный бит переназначения алгоритм
- Каждый конкретный вход всегда отображается на определенной псевдослучайной выходе.
- Выход должен перемешать вход достаточно, чтобы приращающийся вход отображался на псевдослучайный выход.
Например, если входной бит 64 бит, то должно быть ровно 2^64 уникальных выхода, и они должны как можно более прерывать вложенные входы (произвольное требование).
Я буду указывать это на C#, но может переводить с Java или C, если нет встроенных SIMD-интерфейсов. То, что я ищу, - это уже существующий код, а не изобретать колесо.
Я просмотрел Google, но не нашел ничего, что делает сопоставление 1: 1.
«Насколько это возможно», означало бы это обращение к битам (приращение дает как можно большие изменения) или «наиболее случайным образом» (что бы это означало?) – harold
Простое изменение битов isn Достаточно? –
Реверсирование не поможет, так как это все еще имеет узор. Мне нужно, чтобы они перепутались в какой-то степени. – IamIC