Generación de números aleatorios distribuidos uniformemente (0,1) - página 5

 
Mathemat >>:

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

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

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

Alexey, para generar secuencias pseudoaleatorias, por ejemplo, si utilizas un registro de desplazamiento lineal o Fibo, recuerdo, son importantísimos los lags del generador, es decir, aquellas posiciones del registro de las que se toma la retroalimentación. Me parece que si utilizas tu esquema, el desfase puede verse alterado y pueden producirse correlaciones no previstas entre los elementos de la secuencia

 
Mathemat писал(а) >>

gumgum, aquí hay otro enlace: https://forum.mql4.com/ru/19996/page4. Pero tiene dll, pero el generador es algo criptográfico, es decir, más avanzado que el estándar de crt. Y genera muchos más números, desde -2^31 hasta 2^31. Todo lo que necesitas lo puedes encontrar en la misma sucursal.

No hay que generar números. Hay que generar montones y montones de ellos muy aleatorios, y establecer cada vez un nuevo punto de desplazamiento a partir de algo también muy aleatorio y poco claro)))). Casi todos los osciladores funcionan así.

 
Figar0 >>:

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

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

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

No, hace tiempo que no lo hago...

Por lo que sé, los DSPs de software modernos utilizan el contador de reloj del procesador como fuente de entropía

 
Mathemat >>:

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


Gracias. Pero necesito números reales en el rango (0, 1).
 
alsu >>:

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

Gracias, alsu. No insisto, sólo sugiero una opción. No conocía esas sutilezas.

Pero necesito números reales en el rango (0, 1).

Entonces tendré que escribirla yo, no he visto recetas tan preparadas. Genera los dígitos por separado y luego los concatena en un número.

 
Mathemat >>:

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

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


Eso es lo que hice.
 

generadores reales y enteros muy buenos. http://www.agner.org/random/ con un periodo de 10^8100 en alguna parte.

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

Sí, me he dado cuenta. Pero será lento. Probablemente sea mejor hacer primero un número binario y luego convertirlo a decimal. Hay una biblioteca de conversión aquí.

 

Este es uno de los generadores de números aleatorios (no pseudo) más rápidos que existen en la actualidad.

O hay uno más simple, pero también es rápido y tiene buenas características

 
alsu писал(а) >>

Este es uno de los generadores de números aleatorios (no pseudo) más rápidos que existen en la actualidad.

O hay uno más fácil, pero también es rápido y tiene buenas características.

¿Cómo que no seudo? No existe tal cosa en la naturaleza.

Razón de la queja: