Может кто подсказать, есть ли в каком либо языке программирования функция генерирования случайного чила с наибольшим разбросом значений.
В Си есть связка функций srand / rand, но результат не содержит максимального и минимального значения даже приблизительно, все значения оказываются не в диапозоне [0;N], а более узком диапозоне [N/2;2*N/3] – если грубо говорить.
Если не ошибаюсь такая же ситуация и в Delphi
3 февраля 2009 в 9:05
Дмитрий, а какие характеристики у этого распределения? Оно какое – равномерное, нормальное, еще какое-нибудь?
3 февраля 2009 в 2:01
в бусте есть, насколько я помню.
1 февраля 2009 в 2:01
я использовал физические процессы со случайностями и перемешиваниями, например много молекул,их скорости перемешиваются после столкновений,и получается случайное распределение
26 января 2009 в 20:04
Попробуй "вихрь Мерсенна"
'//www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT20…'
26 января 2009 в 19:05
Генерация случайных чисел – слишком важный вопрос, чтобы оставлять его
на волю случая.
( Роберт Ковзю )
26 января 2009 в 19:03
Напиши своюфункцию для генерации случайных но неповторяющихсячисел … Если я пральна понял что тебе нужно…
25 января 2009 в 22:00
Да, у генераторов из стандартных библиотек большинства языков, вроде как, проблемы с равномерностью распределения нету, но вот если брать остатки по *некоторым* модулям, то проблемы начинают появляться.
25 января 2009 в 20:04
есть же общеизвестные алгоритмы. генератор Парка-Миллера к примеру. или Л'Экюэра (могу ошибиться в фамилии – не русский он ) вроде приличный разброс дает… с вероятностью 0,99 по системе STAN (устаревшая система, но этого бывает достаточно)
25 января 2009 в 19:05
А разве можно генерировать случайные путём средств языка?
Если знаем диапазон исходный, и диапазон реальный, то почему бы не увеличить исходный диапазон так, что бы получить желаемый реальный? Грубо говоря, если [0;N] даёт [N/2;2*N/3]то почему бы не взять [2*N;3*N/2] ?
25 января 2009 в 19:05
я написал как-то тестовую программу на делфи – она генерировала 1 000 000 случайных чисел в диапазоне от 1 до 10 и считала, сколько куда попало. Результат получился примерно одинаковый – 0.5% отклонение максимум. Так что должно всё работать
25 января 2009 в 19:05
Грубо говоря, предыдущий оратор прав. Генерировать случайные числа путём средств языка…эээ….
25 января 2009 в 19:04
Можешь показать код, с помощью которого ты убеждаешься, что разброс действительно так мал?
25 января 2009 в 19:04
а разве это будет не "псевдослучайное"? если пользоваться srand rand