с периодом M, то есть последовательность генерирует все числа в [0..999999999] ровно один раз перед началом повторения.
ужно сгенерировать девятизначный числовой код (предпочтительно случайный), который является уникальным для данного дня (такое же число не может быть сгенерировано снова в тот же день). Я думал об использовании HHMMSSmmm (часы, минуты, секунды и миллисекунды) для генерации уникального кода, но на самом деле это не случайно. Доступ к этому методу генерации кода может осуществляться несколькими методами одновременно, поэтому мне придется заблокировать метод. Но будет ли это гарантировать, что число уникально, поскольку возможно, что генерация номера может занять менее миллисекунды, и два потока получат одинаковое число?
Есть ли лучший способ генерировать случайный уникальный числовой код, который является уникальным для данного дня? Количество цифр может быть от 6 до 9 цифр.
Редактировать: Количество генерируемых случайных чисел зависит от количества транзакций. Первоначально число может быть ниже, но в течение определенного периода времени оно может стать очень высоким (несколько транзакций в секунду). Следовательно, я не хотел бы сравнивать число с используемым списком, поскольку это может иметь проблемы с производительностью.
Случайность необходима, так как этот номер будет введен пользователем на телефоне. Этот номер - единственный способ связать онлайн-транзакцию с транзакцией по телефону, поэтому я не хочу, чтобы пользователь вводил другой номер по ошибке.
Генерация случайных чисел должна происходить в приложении ASP.NET MVC.