2013-03-25 3 views
4

У меня есть массив int из значительно больших размеров. Мне нужно полностью перетасовать массив, используя ключ. Я должен иметь возможность получить исходный массив, используя тот же ключ. Я искал любые алгоритмы перетасовки, но тот, который я нашел, как Fisher Yates, не использует ключ.Реверсивная перетасовка массива int в java

Массив int - это значения пикселей изображения. Мне нужно скрыть данные. Таким образом, скрытие данных после перетасовки массива позволяет получать доступ к данным только в том случае, если у них есть ключ.

+2

Вы можете использовать Fisher Yates для этого, как описано в http://stackoverflow.com/a/3542000/367273 - BTW, это был лучший матч в Google для «обратимого перетасовки». – NPE

ответ

2

Fisher-Yates использует генератор псевдослучайных чисел, который вы можете использовать с помощью ключа (смотрите криптографические PRNG). Чтобы обратить вспять процесс, перетасовать массив индексов [0, n) с использованием того же ключа, а затем выполнить обратную перетасовку.

+1

Это то, к чему я пришел с 'for (int i = 0; i user1998915

+0

не могли бы вы переиграть. – user1998915

 Смежные вопросы

  • Нет связанных вопросов^_^