Моя математика не может быть правильным здесь, так что если кто-то может исправить меня, если я ошибаюсь, я с удовольствием использовать хеши, но моя проблема заключается в том, что они не могут быть использованы для создания равномерно распределенного числа в произвольном диапазоне.
Если мы предположим, что хэш в целом довольно случайно (который я не думаю, что есть какие-либо доказательства в этом сомневаться, и, вероятно, доказательств, подтверждающих это), мы не можем использовать это непосредственно, чтобы дать нам случайное число в произвольный диапазон, как вы могли бы сделать это взять хэш по модулю количество билетов вы продали, нижние цифры будут более вероятно, чтобы придумать (было бы отрезать точки, где числа ниже него будет больше шансов придумать, чем над ним номер). Например, если ваш хэш находится в диапазоне [0,10) (я буду использовать небольшое число здесь для ограниченного пространства, то же самое произошло бы с любым числом), и у вас есть шесть проданных билетов. Если взять хэш по модулю количество билетов, у вас есть, вы бы в конечном итоге с {0, 1, 2, 3, 4, 5, 0, 1, 2, 3}. Вы можете видеть, что [0,3], более вероятно, чем четыре или пять, если вы случайно выбрали один из них (тот, который вы выбираете будет равен вашей хэш). Это действительно работает, хотя, если диапазон вашей хэш-кратно количество билетов вы продали.
Во время написания, хотя, я понял, что я мог бы, вероятно, использовать хэш-значение в качестве входных данных для генератора случайных чисел в диапазоне от количества билетов. Я не знаю слишком много о генераторах случайных чисел, но если кто-то может дать мне более подробную информацию о том, что алгоритм я хотел бы использовать для этой цели.
А потом во время записи, что последний абзац, я придумал другое решение; если я взял хэш-значение из первого N блоки после окончания месяца, в котором N является самым маленьким главным фактором количества билетов, и добавил их вместе, я хотел бы получить равномерно распределенное число в диапазоне, кратная количеству проданных билетов. Это математически звук?
Если бы я сделал что-нибудь подобное, я бы убедиться, чтобы сохранить список всех билетов в настоящее время продаются во все времена, так что каждый может проверить, я не вставляя свои билеты в конце.