|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.02.2014, 15:09 | #1 |
Форумчанин
Регистрация: 03.04.2013
Сообщений: 167
|
Путаница в кратком определении функции rand.
Из википедии - Псевдослуча́йная после́довательность — последовательность чисел, которая была вычислена по некоторому определённому арифметическому правилу, но имеет все свойства случайной последовательности чисел в рамках решаемой задачи.
Если я правильно понял то,арифметическое правило – это и есть алгоритм, который реализуется в определении функции rand? Т.е. с точки зрения лексикона программирования правильней говорить ,что rand -это генератор псевдослучайных чисел ,а не генератор случайных чисел? Просто во многих статьях в интернете, где объясняют функцию rand написано что rand – генератор случайных чисел.Так это не правильная формулировка? или можно называть rand ,как генератором случайных чисел, так и генератором псевдослучайных чисел? |
17.02.2014, 15:23 | #2 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Это не правильная формулировка, rand - дает псевдослучайную последовательность (более того, для одинакового "зерна" последовательность будет одинаковой). Создание последовательности близкой к истинно случайной та еще задача.
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
17.02.2014, 22:56 | #3 |
Пользователь
Регистрация: 14.04.2013
Сообщений: 62
|
Да, это конечно псевдослучайная последовательность. Для получения случайных всегда используют внешний источник энтропии - электромагнитные шумы например.
В *unix системах часто есть система /dev/urandom. Она как раз возвращает случайную последовательность байт, которая генерируется с энтропией из различных внутренних источников, например таких, как шум на микрофоне, движение мыши и т.д. Насколько я знаю, на линуксе, при использовании rand() используется источник /dev/random, а не /dev/urandom. Возможно это связано с тем, что /dev/urandom может закончиться (при интенсивном получении чисел многими приложениями) и его рекомендуется использовать только для важных целей. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
GetDiskFreeSpaceEx, ошибка в определении объёма. | Диман56 | Общие вопросы C/C++ | 6 | 06.03.2013 10:51 |
Путаница с Ansi и Unicode версиями функции CreateProcess | calypso | Win Api | 8 | 22.02.2013 15:23 |
случайные значения, использование функции rand() | Matr1x | Общие вопросы C/C++ | 3 | 10.02.2010 11:02 |
Аналог функции rand() для типа float | Linel | PHP | 1 | 01.06.2009 21:01 |
Ошибка при определении принтера | Robin_ | Общие вопросы Delphi | 1 | 14.12.2008 02:05 |