Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 15:09   #1
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию Путаница в кратком определении функции rand.

Из википедии - Псевдослуча́йная после́довательность — последовательность чисел, которая была вычислена по некоторому определённому арифметическому правилу, но имеет все свойства случайной последовательности чисел в рамках решаемой задачи.

Если я правильно понял то,арифметическое правило – это и есть алгоритм, который реализуется в определении функции rand?
Т.е. с точки зрения лексикона программирования правильней говорить ,что rand -это генератор псевдослучайных чисел ,а не генератор случайных чисел?
Просто во многих статьях в интернете, где объясняют функцию rand написано что rand – генератор случайных чисел.Так это не правильная формулировка? или можно называть rand ,как генератором случайных чисел, так и генератором псевдослучайных чисел?
alekopoko вне форума Ответить с цитированием
Старый 17.02.2014, 15:23   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Это не правильная формулировка, rand - дает псевдослучайную последовательность (более того, для одинакового "зерна" последовательность будет одинаковой). Создание последовательности близкой к истинно случайной та еще задача.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 17.02.2014, 22:56   #3
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Да, это конечно псевдослучайная последовательность. Для получения случайных всегда используют внешний источник энтропии - электромагнитные шумы например.

В *unix системах часто есть система /dev/urandom. Она как раз возвращает случайную последовательность байт, которая генерируется с энтропией из различных внутренних источников, например таких, как шум на микрофоне, движение мыши и т.д.

Насколько я знаю, на линуксе, при использовании rand() используется источник /dev/random, а не /dev/urandom. Возможно это связано с тем, что /dev/urandom может закончиться (при интенсивном получении чисел многими приложениями) и его рекомендуется использовать только для важных целей.
PathTheir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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