Генерация равномерно распределенных случайных чисел (0,1) - страница 5

 
Mathemat >>:

gumgum, тогда попробуй вот так. Принцип тот же, но вместо генерации целых чисел от 0 до 32767 ты получишь примерно от 0 до 2^30. Каждое число - это MathRand() + MathRand()*32768. Я не исследовал, как будут распределены, но надеюсь, что для не слишком требовательных задач все будет тип-топ.

Это числа вида AB в 32768-ичной системе счисления.

А еще лучше все-таки использовать dll. Есть такая, она сразу генерит такие большие числа.

Алексей, для генерации псевдослучайных последовательностей, например, если используется линейный регистр со сдвигом или Фибо, помнится, крайне важны лаги генератора, т.е. те позиции регистра, с которых берутся отводы обратной связи. Мне кажется, если использовать указанную тобой схему, то лаговость может нарушиться и между элементами последовательности возникнут незапланированные корреляции

 
Mathemat писал(а) >>

gumgum, вот еще ссылочка: https://forum.mql4.com/ru/19996/page4. Но там с dll, зато генератор типа криптографический, т.е. более совершенный, чем стандартный из crt. И чисел намного больше генерит, примерно от -2^31до 2^31. Все нужное найдете в той же ветке.

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

 
Figar0 >>:

Буквально на днях читал описание этого эксперимента. Понял что не потяну) Может это как раз описание Вашего опыта?

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

З.Ы. Кажется это было на форуме каких-то лотерейщиков, никто не встречал?

Не, я давно этим не занимался...

Насколько знаю, в современных программных ГСЧ в качестве источника энтропии используется счетчик процессорных тактов

 
Mathemat >>:

gumgum, вот еще ссылочка: https://forum.mql4.com/ru/19996/page4. Но там с dll, зато генератор типа криптографический, т.е. более совершенный, чем стандартный из crt. И чисел намного больше генерит, примерно от -2^31 до 2^31. Все нужное найдете в той же ветке.


Спасибо. Но мне нужно вещественные числа в диапазоне (0, 1).
 
alsu >>:

Алексей, для генерации псевдослучайных последовательностей, например, если используется линейный регистр со сдвигом или Фибо, помнится, крайне важны лаги генератора, т.е. те позиции регистра, с которых берутся отводы обратной связи. Мне кажется, если использовать указанную тобой схему, то лаговость может нарушиться и между элементами последовательности возникнут незапланированные корреляции

Спасибо, alsu. Я и не настаиваю, а только предложил вариант. О таких тонкостях я и не знал.

Но мне нужно вещественные числа в диапазоне (0, 1).

Тогда придется писать его самостоятельно, тут подобных готовых рецептов не видел. Генерить цифры отдельно, а потом склеивать их в число.

 
Mathemat >>:

Спасибо, alsu. Я и не настаиваю, а только предложил вариант. О таких тонкостях я и не знал.

Тогда придется писать его самостоятельно, тут подобных готовых рецептов не видел. Генерить цифры отдельно, а потом склеивать их в число.


Дык я так и делал.
 

действительно хорошие генераторы вещественных и целых чисел. http://www.agner.org/random/ с периодом 10^8100 где то.

 
gumgum >>: Дык я так и делал.

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

 

вот тут один из самых быстрых на сегодня генераторов случайных (не псевдо) чисел.

Или там же попроще, но тоже быстрый и с хорошими характеристиками

 
alsu писал(а) >>

вот тут один из самых быстрых на сегодня генераторов случайных (не псевдо) чисел.

Или там же попроще, но тоже быстрый и с хорошими характеристиками

что значит не псевдо? Такого в природе вроде нет.

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