|
|
|
| Доброго времени суток. Мой вопрос не из вопросов по программированию. Скорее из серии "хочу все знать".
Как же все таки работают эти функции? Ведь они должны быть как-то связаны со случайной величиной. Но я не встречал таковой. Кто знает, подскажите, пожалуйста.
Спасибо. | |
|
|
|
|
|
|
|
для: iham
(02.05.2007 в 15:59)
| | эм... например на микровремени.... | |
|
|
|
|
|
|
|
для: iham
(02.05.2007 в 15:59)
| | Используется несколько вариантов: текущее время (редко), ошибки деления чисел с плавающей точкой (часто), специальные хаос-файлы (UNIX), которые формируются на основании нажатия клавиш клавиатуры и движения мыши. | |
|
|
|
|
|
|
|
для: iham
(02.05.2007 в 15:59)
| | сама функция rand() никак ни с чем не связана. Она просто перебирает по кругу 2^32 чисел.
связана srand() | |
|
|
|
|
|
|
|
для: Trianon
(02.05.2007 в 17:06)
| | Начиная с версии 4.2.0 srand() автоматически вызывается при вызове rand(). | |
|
|
|
|
|
|
|
для: cheops
(02.05.2007 в 18:06)
| | Конечно. Но суть работы самого LCG-генератора от этого никак не меняется. | |
|
|
|
|
|
|
|
для: Trianon
(02.05.2007 в 19:15)
| | Доброго времени суток.
Я вот тоже на время думал :) Но этот способ череват последовательность (всё равно ее можно определить, я думаю).
А вот с плавающей запятой, можно поподробнее. В ЮНИХ системы и лезть не хочется =)
Спасибо. | |
|
|
|
|
|
|
|
для: iham
(02.05.2007 в 20:47)
| | Задача стандартного rand() не в том, чтобы никто не просек последовательность - она как раз открытая, а в том, чтоб эта последовательность была а) статистически равномерно распределенной и б) возможно более длинной. Этим требованиям LCG удовлетворяет.
а что у Вас за проблема? Как Вы хотите эти числа применять? | |
|
|
|
|
|
|
|
для: Trianon
(02.05.2007 в 20:57)
| | Доброго времени суток.
>а что у Вас за проблема? Как Вы хотите эти числа применять?
Да ни в чем. Просто мне стало интересно, как я простыми, так сказать, действиями могу получить случайную величину. Вот и все. | |
|
|
|
|
|
|
|
для: iham
(02.05.2007 в 20:47)
| | >А вот с плавающей запятой, можно поподробнее. В ЮНИХ системы и лезть не хочется =)
Имеются специальные алгоритмы (я из библиотеки Fortran таскаю и переписываю - у него наиболее полная мат.библиотека)... однако, прибегать к сторонним алгоритмам следует когда встроенная функция не обладает достаточной стат.равномерностью (например, у вас очень щепетильные расчёты методом Монте-Карло)... в общем больше никакие причин использовать что-то другое действительно нет... Вы что хотите сделать? | |
|
|
|