Rand() - не рандомит как должен

Тема в разделе "C и С++ FAQ", создана пользователем student55, 9 июл 2010.

  1. student55

    student55 Member

    Регистрация:
    13 мар 2010
    Сообщения:
    13
    Симпатии:
    0
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а о "затравке" для рендома в виде seed или randomize (не помню, как правильно в синтаксисе с++), никогда не слышали?
     
  3. Mice

    Mice Гость

    Включить <ctime> и <cstdlib>, после чего, до использования функции rand(), нужно затравить генератор начальным значением (в данном случае затравляем чем - то, связанным с системным временем).
    Это делает функция srand (time(NULL)), по крайней мере я делаю именно так
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Именно для Борланд-компиляторов функция
    Код (C++):
    randomize();
     
  5. Гость

    Вот пример кода:
    Код (C++):
    #include <stdlib.h>
    #include <time.h>
    #include <iostream.h>

    void main (void)
    {
    srand ((unsigned) time (NULL));
    cout << rand () << endl;
    }
    Выдаёт случайное число около 32000.
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    При чем если нужно число от 0 до (<) N, то получается:
    Код (C++):
    rand() % N
     
Загрузка...

Поделиться этой страницей