БлогNot. Как получить число Щасья

Как получить число Щасья

Юные быто сервисописатели интересовались, как мы примерно такое делали, что каждый получал своё число, а в куках (тогда незашифрованных) хранилось только загадочное целое значение, явно не имеющее отношения к выданному ответу.

Если не рассматривать вопросы шифрования данных, достаточно несложной арифметики. Впрочем, при шифровании тоже.

Делая совсем просто, берём "плохую", то есть, сложную функцию c "нерегулярным" графиком, масштабируем её так, чтобы был подходящий разброс значений, кроме максимума и минимума оцениваем среднее (mean), среднеквадратичное отклонение (Stdev), медиану (median).

При вычислении конкретного неслучайного значения аргументом функции будет что угодно, например, контрольная сумма от введённого пользователем имени или количество секунд, прошедших с начала суток (js):

function getSecondsToday() {
 let d = new Date();
 return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}

Когда данные нас устраивают, сохраняем на стороне клиента только это самое количество секунд, а выдаваемое ему число получаем "секретной" функцией на стороне сервера.

Вот пример такой функции с минимумом 5, максимумом 36 и средним и медианой в районе 21 (польстим клиентам).

"Сложная" функция
"Сложная" функция

 Скачать документ .mcdx Mathcad Prime 7 и выше со "сложной" функцией (6 Кб)

22.09.2023, 19:28 [252 просмотра]


теги: учебное javascript random числа ретро математика mathcad

К этой статье пока нет комментариев, Ваш будет первым