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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 221, средняя оценка - 4.97
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
#1

Как сделать генератор случайных чисел? - C++

04.10.2011, 06:48. Просмотров 31359. Ответов 34
Метки нет (Все метки)

Привет всем. Возник очередной вопрос за это утро.
Как сделать генератор случайных чисел?
В учебнике написано так:
"Для этого существует функция random(K) - генератор случайных чисел."
Учебник предлагает вначале написать так:
C++
1
randomize(); //Инициализация генератора случайных чисел
А потом уже использовать функцию
C++
1
random(K);
И дескать это будет целое число в интервале [0; K-1]

Я написал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <conio.h> 
using namespace std;
int main() 
{
    randomize(); //Инициализация генератора случайных чисел
    cout<<random(10);
 
    cout<<endl; 
    getch();
    return 0; 
}
Думал, что он мне выведет целое число из отрезка [0; 9], а он выдал 2 ошибки:
error C3861: randomize: идентификатор не найден
error C3861: random: идентификатор не найден

Что мне делать? Подскажите.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 06:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать генератор случайных чисел? (C++):

Как сделать генератор случайных чисел? - C++
как правильно сделать генератор случайных чисел?? Приведите пожалуйста примеры??

Как сделать быстрый генератор случайных чисел? - C++
Доброго времени суток. Нашёл в сети пример, но меня не устраивает, что генератор выдаёт последовательно либо 0, либо 1, через равные...

Генератор случайных чисел. Как прикрепить? - C++
Как к генератору случайных чисел прикрепить &quot;Введите размер массива&quot;? #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; ...

Как создать генератор случайных чисел ? - C++
Доброго всем времени суток. У меня возник вопрос, как создать генератор случайных чисел. Написал такой код: a = rand() +...

Как создать генератор случайных чисел - C++
Здравствуйте!Я работаю в dev c++ 4.9.9.2 киньте готовый исходник.Зарание спасибо!

Как использовать генератор случайных чисел? - C++
Помогите, пожалуйста, разобраться и исправить программу .Как в этой программе добавить генератор случайных чисел? Объясните, пожалуйста, по...

34
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
05.10.2011, 12:46 #16
rand()%2046 - от 0 до 2045
rand()%2043+3 - от 3 до 2045

Добавлено через 11 секунд
опоздал)
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 12:48 #17
Не говоря о том, что rand вообще не ЧСГ, а пукалка какая-то...
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
05.10.2011, 12:48 #18
Цитата Сообщение от neske Посмотреть сообщение
rand()%2046 - от 0 до 2045
до 2046 =)
или до 2045 включительно
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 12:52 #19
Цитата Сообщение от mimicria Посмотреть сообщение
до 2046 =)
или до 2045 включительно
не пойдет такое объяснение, тогда 0 у вас не входит, а он входит в диапазон.
0
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
05.10.2011, 13:31  [ТС] #20
Всё. Я понял. Всем спасибо.
0
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
25.05.2012, 18:46 #21
Ребята, почему когда я пишу строку "const N=10;" компилятор Dev выдает ошибку "ISO C++ forbids declaration of `N' with no type "?
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>  
#include <conio.h> 
#include <stdlib.h> 
#include <time.h> 
 
const N = 10; // Размер массива.
int main()
{
 int mass[N], i;
 
 srand(unsigned(time(NULL))); // Запуск генератора случайных чисел.
 printf("\n Massiv iz 10 chisel: \n"); // Массив из 10 чисел .
  for(i=0; i<N; i++)
  {
   mass[i]=rand(); // Генерируем случайные элемены массива...   
   printf("\n Mass[%d] = %d. ", i, mass[i]); // и выводим их.
  }
 
            
 getch(); 
 return 0; 
}
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
25.05.2012, 18:51 #22
C++
1
const int N = 10;
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
25.05.2012, 18:52 #23
C++
1
const int N = 10; // Размер массива.
1
Aesonet
23 / 23 / 1
Регистрация: 04.04.2012
Сообщений: 119
25.05.2012, 19:00 #24
const - это не тип числа, а определение что число будет неизменное (нужно если пишешь большую программу, чтобы не переназначить число.) Так что после const нужно вставить тип данных int, double, float и т.д.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7416 / 4531 / 670
Регистрация: 29.11.2010
Сообщений: 12,273
25.05.2012, 19:44 #25
Истинно случайные числа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(-10, 10);
    int a[10]; 
    std::generate(a, a + 10, [&uid, &gen] {return uid(gen); } );
    std::copy(a, a + 10, std::ostream_iterator<int> (std::cout, " ") );   
    return 0;
}
http://liveworkspace.org/code/6433d50dd46526030396f566b28e5543
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
26.05.2012, 04:44 #26
Цитата Сообщение от MrGluck Посмотреть сообщение
Истинно случайные числа:
истинно случайные числа без специальных устройств не получишь
0
MrGluck
Модератор
Эксперт CЭксперт С++
7416 / 4531 / 670
Регистрация: 29.11.2010
Сообщений: 12,273
26.05.2012, 18:42 #27
Цитата Сообщение от Nameless One Посмотреть сообщение
истинно случайные числа без специальных устройств не получишь
Класс random_device моделирует недетерминированный генератор истинно случайных чисел.
http://www.solarix.ru/for_developers...t_random.shtml

std::random_device is a uniformly-distributed integer random number generator, which produces non-deterministic random numbers, if a non-deterministic source (e.g. a hardware device) is available to the implementation.
http://en.cppreference.com/w/cpp/numeric/random/random_device

Или неперменно нужна рулетка и метод Монте-Карло?)
0
easybudda
26.05.2012, 20:15
  #28

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Или неперменно нужна рулетка и метод Монте-Карло?
Обезьяна и кубик с пронумерованными гранями тоже подойдут

0
Catstail
Модератор
22707 / 11076 / 1795
Регистрация: 12.02.2012
Сообщений: 18,264
26.05.2012, 20:30 #29
1) Все, что выдают функции типа random, называются псевдослучайными числами. Истино случайные числа получают от физических датчиков. Но для приложений (Монте-Карло, к примеру) псевдослучайные числа вполне себе ничего...

Причем, если rnd() возвращает псевдослучайное из интервала [0,1], то его элементарно привести к любому интервалу [a,b] вот так: a+(b-a)*rnd(). Этих знаний для студентов вполне достаточно.

2) А вот как устроена функция rnd - вопрос интересный. Один из методов таков: берется многоразрядное целое, возводится в квадрат. У квадрата берется несколько средних разрядов (очередное случайное), снова возводится в квадрат и т.д. Метод называется "середина квадрата"
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.05.2012, 21:53 #30
Цитата Сообщение от Alex Z Посмотреть сообщение
Как сделать генератор случайных чисел?
/dev/urandom можно читать.
0
27.05.2012, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 21:53
Привет! Вот еще темы с ответами:

Как написать генератор случайных чисел? - C++
Помогите, пожалуйста, написать такой код! Добавлено через 8 минут Только нужно, чтобы можно было указать, в каких пределах числа...

Генератор псевдо-случайных чисел, как хэш-функция - C++
Анализируя генератор псевдослучайных чисел Я пришел к выводу, что (Учитывая что RAND_MAX = 32767) придумал сам, но может где то...

Генератор случайных чисел - C++
Добрый день!У меня есть код #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;ctime&gt; char randSym() { ...

Генератор случайных чисел - C++
В общем, нужно составить программу, которая реализует алгоритм генерации случайных чисел. Естественно не используя random. Перерыла массу...


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

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

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