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

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

Войти
Регистрация
Восстановить пароль
 
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 116
#1

ГСЧ - C++

12.11.2013, 22:22. Просмотров 430. Ответов 12
Метки нет (Все метки)

А подскажите пожалуйста, как сгенерировать числа от 10 до 1000000 ? и какой тип переменной использовать, long long?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 22:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ГСЧ (C++):

Плохо работает ГСЧ - C++
Подскажите, пожалуйста, как изменить программу, чтоб ГСЧ работал хорошо? Мне нужно, чтоб на каждой итерации у меня генерировался "хороший"...

ГСЧ, одинаковые значения - C++
Подскажите, почему при каждом запуске программы генератор случайных чисел выдает одни и те же значения? т.е. если при первом запуске он...

ГСЧ в большом диапазоне - C++
rand()% ограничен диапазоном от 0 до ~ 32 000. Нужно ГСЧ в меняющемся диапазоне от 0 до 1 000 000. Подскажите, как это реализовать на...

ГСЧ для равномерного распределения случайных чисел на заданном интервале - C++
Доброго всем времени суток. Мне нужно получить последовательность случайных чисел типа double равномерно распределённых на заданном...

ГСЧ для float из всего диапазона - C++
Ребят, подскажите, пожалуйста, как можно сгенерировать число типа float из всего диапазона данного типа? Причем, если получится NaN, +Inf,...

Пример по ГСЧ - Программирование Android
Доброго времени суток. Решил собрать генератор случайных чисел от 1 до 6 включительно. Вроде бы должен работать, но походу я в выводе на...

12
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 22:31 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main ()
{
    int i;
    srand (time (NULL));
    
    i = rand ()  % (1000000-10+1) + 10;  
    cout << "Rand int - " << i << endl;
 
   system ("pause");
   return 0;
}
1
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 116
12.11.2013, 22:36  [ТС] #3
Цитата Сообщение от FreeMan108 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main ()
{
    int i;
    srand (time (NULL));
    
    i = rand ()  % (1000000-10+1) + 10;  
    cout << "Rand int - " << i << endl;
 
   system ("pause");
   return 0;
}
спасибо, но еще дело в том, какой тип использовать потому что инт только до 32к, принимает значение
0
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 22:36 #4
Должно хватить
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 22:38 #5
FreeMan108, только вот для начала надо проверить чему RAND_MAX равен. А он, вполне вероятно, 32767. Тогда весь Ваш код идет в мусор.
0
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 22:42 #6
Хотите больше ?

C++
1
__int64 i;
Хотите меньше

C++
1
__int16 i; // __int8
Добавлено через 2 минуты
C++
1
pow (rand (), rand () % 10)  % (1000000-10+1) + 10;
Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
Тогда весь Ваш код идет в мусор.
Ну почему же весь. Всего одна строчка.
0
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 116
12.11.2013, 22:44  [ТС] #7
)))
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 22:45 #8
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Ну почему же весь. Всего одна строчка.
Весь. Потому что распределение со всякими pow() уже не будет равномерным.
http://ideone.com/O5y9lI

Tantay, проблема не в типе int, а в том, что rand() возвращает значения до RAND_MAX, которое на Вашей системе 32767.
1
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 22:46 #9
C++
1
2
cout << sizeof (__int64) << endl;
cout << sizeof (__int32) << endl;
int64 весит 8 байт, в то время как int32 - 4.
0
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 116
12.11.2013, 22:49  [ТС] #10
Цитата Сообщение от Tulosba Посмотреть сообщение

Tantay, проблема не в типе int, а в том, что rand() возвращает значения до RAND_MAX, которое на Вашей системе 32767.
все спасибо всем огромное, получилось!
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.11.2013, 22:51 #11
Цитата Сообщение от Tantay Посмотреть сообщение
а что нужно тогда еще прописать?
Нужно прописать rand() * RAND_MAX + rand().
0
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 23:01 #12
C++
1
#include <random>
Так это еще надо устанавливать спец. библиотеку.

Добавлено через 3 минуты
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Нужно прописать rand() * RAND_MAX + rand().
Что собственно и надо было придумать для равномерного распределения.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 23:02 #13
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Так это еще надо устанавливать спец. библиотеку.
Стандарт С++11
0
12.11.2013, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 23:02
Привет! Вот еще темы с ответами:

Массивы и ГСЧ - хэлп!! - Visual Basic
Нужно срочно решить такую задачу, которая мне уже взорвала мозг!! &quot;Создать квадратную матрицу заданного порядка (порядок вводить через...

К ГСЧ прилипить TChart - Delphi
всем доброго времени суток. Сиделя я делал лабу по Компьютерному моделированию, практически все реализовал, и тут столкнулся с...

ГСЧ для переадрессации на странице - PHP
Доброго здравия уважаемые форумчане! Возникла не простая для меня задача и без специалиста не разобраться. Есть страница назовем ее &quot;1.php&quot;...

Сделать ГСЧ генератор в диапазоне -1,8 +1,8 - VBA
Помогите сделать ГКЧ генератор в диапазоне -1,8 +1,8. На выходе нужны 3 числа: одно выдает генератор, а два других незначительно...


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

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

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