Ну, вам нужно сэкономить что-то .Одна простая идея:
- Используйте генератор случайных чисел для генерации случайного начального числа.
- Создайте новый экземпляр
Random
для использования для перемешивания с использованием этого начального числа - Перестановка с измененным Перемешиванием Фишера-Йейтса
- Сохранение семени
Перестановка затем обратима - правда, с небольшим усилием.(Я бы, вероятно, перетасовал числа 0 ... (n-1) таким же образом, а затем изменил бы обратное отображение символов таким образом.)
Хитрость в том, что вы делаете нужно семя - это немного похоже на соль в сохраненном хэше пароля.У вас должна быть некоторая дополнительная информация, чтобы сказать, как она была перетасована, иначе вы не будете знать, прибыл ли «abc» из «bac» или «cab», например.