Форум программистов, компьютерный форум CyberForum.ru

ГСЧ, одинаковые значения - C++

Восстановить пароль Регистрация
 
Kr
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 35
11.03.2013, 16:48     ГСЧ, одинаковые значения #1
Подскажите, почему при каждом запуске программы генератор случайных чисел выдает одни и те же значения?
т.е. если при первом запуске он выдал последовательность 41, 105, ..., и тд
то при новом запуске снова выдает 41, 105, ...

N=200;
n=(rand()%(N));
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 16:48     ГСЧ, одинаковые значения
Посмотрите здесь:

ГСЧ для равномерного распределения случайных чисел на заданном интервале C++
C++ Количество пар соседних элементов, которые имеют одинаковые абсолютные значения, но противоположные знаки
C++ Плохо работает ГСЧ
ГСЧ C++
C++ Найти в массиве одинаковые значения
Доказать, что для любых величин следующие пары логических выражений имеют одинаковые значения C++
Rand: Во всех случаях генерируются одинаковые значения C++
ГСЧ в большом диапазоне C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
srg_btl
33 / 33 / 2
Регистрация: 21.02.2013
Сообщений: 90
11.03.2013, 16:54     ГСЧ, одинаковые значения #2
Используй srand (time(NULL)); тогда твои числа будут разными

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* rand example: guess the number */
#include <stdio.h>      /* printf, scanf, puts, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
 
int main ()
{
  int iSecret, iGuess;
 
  /* initialize random seed: */
  srand (time(NULL));
 
  /* generate secret number between 1 and 10: */
  iSecret = rand() % 10 + 1;
 
  do {
    printf ("Guess the number (1 to 10): ");
    scanf ("%d",&iGuess);
    if (iSecret<iGuess) puts ("The secret number is lower");
    else if (iSecret>iGuess) puts ("The secret number is higher");
  } while (iSecret!=iGuess);
 
  puts ("Congratulations!");
  return 0;
}
Добавлено через 2 минуты
Он работает опираясь на начальное значение, т.к. при каждом запуске оно одинаковое выходят и числа одинаковые. Изменить это начальное значение можно с помощью srand (time(NULL));
Yandex
Объявления
11.03.2013, 16:54     ГСЧ, одинаковые значения
Ответ Создать тему
Опции темы

Текущее время: 18:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru