вопрос по генератору случайных чисел - страница 3

 
Vasiliy Sokolov:

Вы немного неправильно понимаете значение функции MathSrand. Начнем с того, что сама последовательность псевдослучайных чисел выдаваемая MathRand конечна и повторяется. т.е. это ни какие не бесконечные случайные числа, а просто большой ряд последовательности чисел (которые выглядят как якобы случайные). Когда ряд заканчивается, MathRand начинает выдавать числа сначала этой последовательности, и значения начинают повторятся вновь.

MathSrand просто указывает функции MathRand, с какого места последовательности псевдослучайных чисел их необходимо выдавать.

В Вашем вопросе не видно необходимости использования случайных чисел.  Почему вместо случайных чисел не использовать обычный счетчик 1, 2, 3...? - Значения никогда не повторятся.

Если так необходимо использовать именно случайное число, то могу порекомендовать посмотреть в сторону симметричного шифрования счетчика - вероятность образования коллизии равна нулю, т.е. Вы гарантировано получите уникальное, нормально-распределенное число, характеризующее прогон.  

То есть взять счетчик 1,2,3,4... и значения зашифровать симметричным алгоритмом? 

Кстати, именно уникального числа никак не получиться, есть ограничение по разрядной сетке проца )) Так что повторы чисел будут, но не последовательности.

В электронике раньше истинно случайные числа получали оцифровкой шума некоторых электронных элементов. А по простому на сдвиговых регистрах с отводами, но там есть повторы последовательности, про которые вы писали. 

 
Vasiliy Sokolov:

Вы немного неправильно понимаете значение функции MathSrand. Начнем с того, что сама последовательность псевдослучайных чисел выдаваемая MathRand конечна и повторяется. т.е. это ни какие не бесконечные случайные числа, а просто большой ряд последовательности чисел (которые выглядят как якобы случайные). Когда ряд заканчивается, MathRand начинает выдавать числа сначала этой последовательности, и значения начинают повторятся вновь.

MathSrand просто указывает функции MathRand, с какого места последовательности псевдослучайных чисел их необходимо выдавать.

В Вашем вопросе не видно необходимости использования случайных чисел.  Почему вместо случайных чисел не использовать обычный счетчик 1, 2, 3...? - Значения никогда не повторятся.

Если так необходимо использовать именно случайное число, то могу порекомендовать посмотреть в сторону симметричного шифрования счетчика - вероятность образования коллизии равна нулю, т.е. Вы гарантировано получите уникальное, нормально-распределенное число, характеризующее прогон.  

На практике проверил, что в оптимизаторе глобальные переменные при совпадении имен не влияют друг на друга.

А в реальной торговле они однозначно сгенерируются разными.

Так что другие решения  для создания уникального имени глоб. переменной уже не нужны.

Спасибо)

 
Alexey Volchanskiy:

То есть взять счетчик 1,2,3,4... и значения зашифровать симметричным алгоритмом? 

Кстати, именно уникального числа никак не получиться, есть ограничение по разрядной сетке проца )) Так что повторы чисел будут, но не последовательности.

В электронике раньше истинно случайные числа получали оцифровкой шума некоторых электронных элементов. А по простому на сдвиговых регистрах с отводами, но там есть повторы последовательности, про которые вы писали. 

Повторов не будет. Это гарантирует симметричный ключ шифрования. Грубо говоря, у каждого числа будет свой двойник:

1 <---> 2039488392843
2 <---> 6938429
3 <---> 129384739283725
4 <---> 938
...

Чем длинна ключа выше, тем больше уникальных значений на основе простого счетчика можно будет сформировать. 

Причина обращения: