Если вам не нравится это «решение», объясните, почему нет, и вы получите лучшие ответы.
Возьмите таблицу кодов ASCII и выбросьте коды для не-символов, таких как «звонок», у вас останется примерно 100 символов.
Создайте отображение 1: 1 между символами и двумя цифрами git, например, вы можете начать с
space <-> 00
! <-> 01
A <-> 33
...
Z <-> 58
...
a <-> 65
Я ожидаю, что вы получить картину. Теперь закодируйте первые 32 (или любые другие) символы в вашей строке очевидным способом, например,
`Aa aa` -> `3365006565`
и добавьте в строку любые строки короче, чем 32 символа, с помощью 00
. (Я не мог потрудиться набрать все 00
для примера.)
Сгенерировать случайное число в диапазоне [1,64]
и использовать его для поворота строки цифр c влево на это число мест.
Поставьте десятичную точку перед тем, что осталось, и вы получите искомое действительное число.
Я считаю, что это удовлетворяет вашим требованиям.