Как бы вы сгенерировали очень-очень большое случайное число? Я думаю о порядке 2 ^ 10 ^ 9 (один миллиард бит). Любой язык программирования - я предполагаю, что решение будет переведено на другие языки.
Я хотел бы, чтобы на [1, N] было равномерное распределение.
Мои первоначальные мысли:
- Вы можете случайным образом генерировать каждую цифру и объединить. Проблема: даже очень хорошие генераторы псевдослучайных случаев могут создавать шаблоны с миллионами цифр, верно?
Возможно, вы могли бы помочь создать большие случайные числа, возведя случайные числа в случайные степени. Проблема: вы должны заставить математику работать так, чтобы результирующее число оставалось случайным, и вы могли вычислить его за разумный промежуток времени (скажем, за час).
Если это поможет, вы можете попытаться сгенерировать возможно неравномерное распределение в возможно меньшем диапазоне (например, с использованием действительных чисел) и преобразование. Проблема: это может быть не менее сложно.
Есть идеи?