The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

rand (3)
  • rand (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • rand (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • rand (3) ( Solaris man: Библиотечные вызовы )
  • rand (3) ( FreeBSD man: Библиотечные вызовы )
  • >> rand (3) ( Русские man: Библиотечные вызовы )
  • rand (3) ( Linux man: Библиотечные вызовы )
  • rand (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    rand, srand - генерируют случайные числа  

    СИНТАКСИС

    #include <stdlib.h>
    
    int rand(void);
    
    void srand(unsigned int seed);
    
     

    ОПИСАНИЕ

    Функция rand() возвращает псевдослучайное число в диапазоне от нуля до RAND_MAX.

    Функция srand() устанавливает свой аргумент как основу (seed) для новой последовательности псевдослучайных целых чисел, возвращаемых функцией rand(). Эту последовательность можно воспроизвести. Для этого необходимо вызвать srand() с соответствующей величиной seed.

    Если seed не установлено, то функция rand() автоматически устанавливает его равным 1.  

    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

    Функция rand() возвращает псевдослучайное число в промежутке от нуля до RAND_MAX. Функция srand() не возвращает значений.  

    ЗАМЕЧАНИЯ

    Версия функций rand() и srand() в библиотеке С для Linux использует тот же генератор чисел, что и в функциях random() и srandom(), так что младшие биты в числе случайны настолько, насколько и старшие. В то же время в старой реализации rand() младшие биты являются гораздо менее случайными, чем старшие

    В книге Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1992 (2nd ed., p. 277)) даны следующие комментарии:

    "Если Вы желаете получить случайное число в промежутке от 1 до 10, Вы всегда должны использовать старшие биты, например:

    j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

    не следует выполнять такое действие:

    j=1+(rand() % 10);

    (т.е. использовать младшие биты)."

    Генерация случайных чисел - это трудная тема. В книге Numerical Recipes in C (см. ссылку выше) есть прекрасная статья о практической генерации случайных чисел, глава номер 7 (Random Numbers).

    Если Вам необходимы основательные теоретические рассуждения на эту тему, которые, кстати, являются в большой степени практическими, загляните в главу #3 (Random Numbers) классического труда Donald E. Knuth The Art of Computer Programming, том #2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.  

    СООТВЕТСТВИЕ СТАНДАРТАМ

    SVID 3, BSD 4.3, ISO 9899  

    СМ. ТАКЖЕ

    random(3), srandom(3), initstate(3), setstate(3)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    ЗАМЕЧАНИЯ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру