Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Генератор случайных чисел


Автор: Turboman 11.12.2002, 15:02
Сейчас здесь никого нет :-(, но когда появятся, где в С++ генератор случайных чисел?  <:-0

Автор: Шурик 11.12.2002, 16:37
RAND               Генератор случайных чисел.

Синтаксис          #include
                  int rand(void);

Файл, содержащий   stdlib.h
прототип

Описание           Функция rand использует мультипликативный конгру-
                  энтный генератор случайных чисел с периодом 2^32,
                  чтобы получать псевдослучайные числа в диапазоне
                  от 0 до RAND_MAX. Символическая константа
                  RAND_MAX определена в stdlib.h; ее значение
                  2^15ё1.

Переносимость      Функция поддерживаются на системах UNIX и стандар-
                  том ANSI C.

Пример:

#include
#include
int main(void)
{
  int i;
  printf("10 случайных чисел от 0 до 99 \n\n");
  for (i=0; i<10; i++)
      printf("%d\n", rand()%100);
return 0;
}

--------------------------------------------------------

RANDOM             Генератор случайных чисел.

Синтаксис          #include
                  int random(int num);

Файл, содержащий   stdlib.h
прототип

Описание           Функция random возвращает случайное число в
                  диапазоне от 0 до num-1. random(num) это макро,
                  определенное в виде (rand()%num). И num и возвра-
                  щаемое значение целые.

Возвращаемое       random возвращает случайное число в диапазоне от
значение           0 до num-1.

Переносимость      Соответствующая функция существует в Turbo Pascal.

Пример:

#include
#include
#include

int main(void)
{
  randomize();
  printf("Случайное число в диапазоне от 0 до 99:", random(100));
  return 0;
}
------------------------------------------
еще если интересно смотри http://www1.zsu.zp.ua/lab/help/C/htm/

Автор: Turboman 13.12.2002, 16:46
С первой частью вышло, а вторая не работает. Или может надо макросы самому создавать? Обьясни

Автор: neutrino 13.12.2002, 17:47
Цитата(Turboman @ 13.12.2002, 05:46)
С первой частью вышло, а вторая не работает. Или может надо макросы самому создавать? Обьясни

Первое для VC++, второе - Turbo C

Автор: DrMasik 14.12.2002, 09:05
со всем согласен, только вто srand(), почему опустили?

Автор: Dagger 14.12.2002, 09:14
Цитата(DrMasik @ 14.12.2002, 01:05)
со всем согласен, только вто srand(), почему опустили?

Макс, а какая разница между srand() и rand() (к примеру) ???

Автор: Turboman 14.12.2002, 14:43
Ну а с Randomize в VC как?

Автор: neutrino 15.12.2002, 19:15
Цитата(Turboman @ 14.12.2002, 03:43)
Ну а с Randomize в VC как?

Он там не нужен. Это генератор случайной последовательности. Ты должен делать rand()%n, чтобы получить число ~[0, n-1].

Автор: Turboman 17.12.2002, 14:58
Ну а как...
А если надо изменить случайную последовательность,то надо засовывать rand в for rand%n{...}
Вот так:
Код
void roll()
{
 for (int i; i=100; i=0; i--) // Хотя может тут ошибка
   {
      int z;
      z = rand()%100;
   };
};

Может кому пригодится
ЗЫ Кто не понял это Randomize
:)

Автор: Turboman 24.12.2002, 03:34
Цитата
Ну а как...
А если надо изменить случайную последовательность,то надо засовывать rand в for rand%n{...}
Вот так:
Исходный код  
void roll()
{
for (int i; i=100; i=0; i--) // Хотя может тут ошибка
  {
     int z;
     z = rand()%100;
  };
};

Может кому пригодится
ЗЫ Кто не понял это Randomize



Ну не так
for неправильно и все равно не работает
Вообще это никому на третьей странице не надо
и это другая тема

Автор: Baa 24.12.2002, 17:27
Код

//вот так делается Randomize ()
srand( (unsigned)time( NULL ) );

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)