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

Генератор случайных чисел - C++

Восстановить пароль Регистрация
 
Zoger
3 / 3 / 0
Регистрация: 10.10.2010
Сообщений: 68
12.05.2013, 12:29     Генератор случайных чисел #1
Всем привет, вот такая задачка. "Датчики случайных чисел можно привлекать при подборе проверочных исходных данных для программ.
а) 25 действительных чисел, лежащих в диапазоне от -50 до 50.
б) 30 целых чисел, лежащих в диапазоне от -20 до 20.

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
26
27
28
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{
   int n;
   double m;
   srand(time(NULL));
 
   cout << "a) \n";
   for(int i = 0; i < 25; i++)
   {
   m = 0.49 * (rand() % 101);
   cout << m << endl;
   }
 
   cout << "b) \n";
   for(int i = 0; i < 30; i++)
   {
      n = -20 + rand() % 41;
      cout << n << endl;
   }
   system ("PAUSE");
   return 0;
}
пункт "б" получился, но вот в пункте "а" никак не получается реализовать диапазон от -50 до 50. Смог получит что-то вроде от 0 до 50 но вот с минусом никак. ):
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 12:29     Генератор случайных чисел
Посмотрите здесь:

C++ Как сделать генератор случайных чисел?
генератор случайных чисел C++
C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ Генератор случайных чисел (с UI)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Precise
26 / 26 / 1
Регистрация: 20.05.2012
Сообщений: 43
12.05.2013, 12:38     Генератор случайных чисел #2
У вас оба пункта не правильны! Ниже представлена правильная запись.
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
26
27
28
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{
   int n;
   double m;
   srand(time(NULL));
 
   cout << "a) \n";
   for(int i = 0; i < 25; i++)
   {
   m = 0.49 * (rand() % 50 - 50);
   cout << m << endl;
   }
 
   cout << "b) \n";
   for(int i = 0; i < 30; i++)
   {
      n = rand() % 20 - 20;
      cout << n << endl;
   }
   system ("PAUSE");
   return 0;
}
Zoger
3 / 3 / 0
Регистрация: 10.10.2010
Сообщений: 68
12.05.2013, 12:42  [ТС]     Генератор случайных чисел #3
Цитата Сообщение от Precise Посмотреть сообщение
У вас оба пункта не правильны!
большое спасибо!
Но мой вариант пункта "б" тоже вроде правильный. по крайней мере компилятор правильно выбирает числа в указанном диапазоне.
Precise
26 / 26 / 1
Регистрация: 20.05.2012
Сообщений: 43
12.05.2013, 12:52     Генератор случайных чисел #4
Если хотите использовать свою реализацию, тогда сделайте так!
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
26
27
28
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{
   int n;
   double m;
   srand(time(NULL));
 
   cout << "a) \n";
   for(int i = 0; i < 25; i++)
   {
   m = -50 + 0.49 * (rand() % 101);
   cout << m << endl;
   }
 
   cout << "b) \n";
   for(int i = 0; i < 30; i++)
   {
      n =-20 + rand() % 41;
      cout << n << endl;
   }
   system ("PAUSE");
   return 0;
}
Zoger
3 / 3 / 0
Регистрация: 10.10.2010
Сообщений: 68
12.05.2013, 13:01  [ТС]     Генератор случайных чисел #5
Цитата Сообщение от Precise Посмотреть сообщение
m = -50 + 0.49 * (rand() % 101);
Цитата Сообщение от Precise Посмотреть сообщение
m = 0.49 * (rand() % 50 - 50);
но эти оба варианта берут только -50 до 0
Yandex
Объявления
12.05.2013, 13:01     Генератор случайных чисел
Ответ Создать тему
Опции темы

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