С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
lavrik
10 / 10 / 1
Регистрация: 24.02.2011
Сообщений: 651
#1

rand() - C++

14.10.2012, 10:47. Просмотров 2519. Ответов 3
Метки нет (Все метки)

начал учить си++, наткнулся на такую штуку...
Накидал простую программку (консольную) и увидел что датчик случ. чисел выдает нифига не случайные числа!!!

C++ (Qt)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>   // Заголовок для подключения системы ввода/вывода
#include <cstdlib>
using namespace std;  // Использовать пространство имен std
 
void wait();
 
 
 
 
int main()
{
    int magik, my;
 
    magik = rand();
 
    cout << "Введи число \n";
    cin >> my;
    
    if (magik==my)
       {
       cout << "Угадал";
       }
       else
       {
       cout << "не угадал - ";
       if (my > magik)
          {
          cout << "Слишком много \n";
          }
          else
          {
          cout << "Слишком мало \n";
          }
       cout << "Рандомное число - " << magik;
       }
    
    return 0;
}

число my ВСЕГДА равняется 41. ПОЧЕМУ???? я что-то ни так делаю???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 10:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос rand() (C++):

Rand() - C++
metka: r1=rand()%2; r2=rand()%2; if(r1==a &amp;&amp; r2==b)goto metka; else arr=='O'; Собсно-это кусок кода...

rand() - C++
генератор случайных чисел rand() подскажите пожелуста как работает ета штука. что означает %200, %200-100. какой принцип роботы

rand() - C++
Как записать чтобы rand() возвращало true и false. Или подскажите другой способ. Мне нужно заполнить 3-х мерный массив.

rand - C++
srand(time(NULL)); int s = rand()%1000 +1; генерирует бред вроде 3,4,7,10,14,19,21,26,29... как сделать чтобы значения были...

rand()%(-20)%(20); - C++
Нужно сорт случ числа от -20 до 20 Делаю так rand()%(-20)%(20); получаю числа от 0 до 20, а мне нужно от -20 ;

rand - C++
всем привет) что означает вот это строка double value = (rand()%1000)/100.0 - 5.0; и чем она отличается от этой double value =...

3
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.10.2012, 10:52 #2
Добавьте в начало main srand(time(0)); и подключите заголовок #include <ctime>
0
ExpressS
5 / 8 / 0
Регистрация: 30.07.2012
Сообщений: 235
14.10.2012, 10:54 #3
Цитата Сообщение от lavrik Посмотреть сообщение
начал учить си++, наткнулся на такую штуку...
Накидал простую программку (консольную) и увидел что датчик случ. чисел выдает нифига не случайные числа!!!

C++ (Qt)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>   // Заголовок для подключения системы ввода/вывода
#include <cstdlib>
using namespace std;  // Использовать пространство имен std
 
void wait();
 
 
 
 
int main()
{
    int magik, my;
 
    magik = rand();
 
    cout << "Введи число \n";
    cin >> my;
    
    if (magik==my)
       {
       cout << "Угадал";
       }
       else
       {
       cout << "не угадал - ";
       if (my > magik)
          {
          cout << "Слишком много \n";
          }
          else
          {
          cout << "Слишком мало \n";
          }
       cout << "Рандомное число - " << magik;
       }
    
    return 0;
}

число my ВСЕГДА равняется 41. ПОЧЕМУ???? я что-то ни так делаю???
C++
1
2
3
4
int s;
srand(time(NULL));
for (int i=0;i<10; i++)
{s = rand() % 100 + 1;}
от 1 до 100
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
14.10.2012, 11:49 #4
Цитата Сообщение от lavrik Посмотреть сообщение
число my ВСЕГДА равняется 41. ПОЧЕМУ????
Потому что rand() на самом деле выдает псевдослучайные числа. Внутри функции заложен определенный алгоритм, по которому эти числа берутся. Есть функция srand(), которая позволяет инициализировать начальное значение для генератора. В качестве аргумента в нее по традиции передается значение, возвращаемое функцией time(). Таким образом при каждом запуске программы это будет новое значение.
0
14.10.2012, 11:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 11:49
Привет! Вот еще темы с ответами:

rand от 1 до 16 - C++
Вопрос в том как в функции rand() на c++ задать диапазон чисел от 1 до 16

Rand() - C++
Ребята срочно nомогите , как сгенерировать с nомощью функции rand() рандомные числа 0 или 1 ?

rand - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; // гениратор случайных чисел using namespace std; ...

Функция rand() - C++
Здравствуйте, где я могу посмотреть код функции rand()? И подобных функций на генерирование псевдослучайных чисел?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.