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

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

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

Чайник VS Случайные числа - C++

11.09.2012, 20:01. Просмотров 843. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <cstdlib>
 
using namespace std;
 
int main()
{
while(1==1){
 
    Sleep(2000);
    srand(time(NULL));
    int a = 100 ; int b = 1000 ; int c ;
    c = rand() % (b - a + 1) + a;
 
    cout << c;
}
}
Я хочу получать каждый раз случайное число в диапазоне от 100 до 1000. Но получаю примерно вот что:
100
112
124
135
...
869
881
...
1000
102
125
136
...

и так далее. Как сделать так, чтобы было например:

125
101
859
880
251
904
487
...
и тд и тп. Пожалуйста, помогите. Уже всю голову сломал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2012, 20:01     Чайник VS Случайные числа
Посмотрите здесь:

случайные числа - C++
rand() в VS имеет диапазон от 0 до 32768? даже изменение RAND_MAX ничего не повысит верхний уровень?

Случайные числа - C++
Написать генератор псевдослучайных чисел по алгоритму f(n) = f(n-1) + f(n-2) + f(n-3) ( f0 = f1 = f2 = 1) r = fn mod 211. ( 0 - 210) ...

Случайные числа. - C++
Есть числа 2,4,6,8,0 - из них нужно случайно выбрать одно. Как это сделать? Google'ил, нашел только что то по типу #include &lt;stdlib.h&gt; ...

Случайные числа - C++
Создать матрицу случайных чисел, если max элемент располагается левее минимального то тогда сложить элементы левой половинки матрицы.

Случайные числа - C++
Написать функцию, которая подсчитует сколько раз заданое число встречается в последовательности N случайных чисел.

Случайные числа - C++
Привет, мне надо наполнить массив случайными числами но толька чтоб они не повторялись, подскажыте как ето сделать.

случайные числа - C++
подскажите как сформировать двумерный массив случайных чисел в заданном диапозоне которые не повторяются

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.09.2012, 20:07     Чайник VS Случайные числа #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <random>
#include <iostream>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(100, 1000);
    for(std::size_t i = 0; i < 10; ++i)
        std::cout << dis(gen) << std::endl;
    return 0;
}
rubodon
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 19
11.09.2012, 20:20  [ТС]     Чайник VS Случайные числа #3
soon, вроде бы работает как мне надо, спасибо. Если не трудно, прокомментируйте, пожалуйста, представленный Вами код.
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.09.2012, 20:38     Чайник VS Случайные числа #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <random>
#include <iostream>
 
int main()
{
    std::random_device rd; // Класс, включающий в себя недетерминированную функцию(operator()), которая возвращает случайное число
    std::mt19937 gen(rd()); // Генератор "Вихрь Мерсена". Инициализируется случайным значением из random_device
    std::uniform_int_distribution<> dis(100, 1000); // Задаем границы для случайных чисел
    for(std::size_t i = 0; i < 10; ++i)
        std::cout << dis(gen) << std::endl; // Выводим
    return 0;
}
PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
11.09.2012, 20:53     Чайник VS Случайные числа #5
Насчем с того что комп может генерить только ПСЕВДОслучайные числа. Использование комбинации srand+rand тем более от времени считается слабо случайным. К томуже, алгоритмы случайных числел основаны на сдвигах итд, и в конце концов они имеют период повторения.
Это большая трабла в индустрии вообще, особенно в шифровальных делах. Intel вкладывает бабос чтобы делать модуля в ЦПУ, которые умеют генерить тру-случайные числа используя флустрации температуры, ну и т.д. и т.п., короче если нужны _реально_ случайные числа то тут проблема.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,116
11.09.2012, 21:00     Чайник VS Случайные числа #6
Цитата Сообщение от PSIAlt Посмотреть сообщение
Насчем с того что комп может генерить только ПСЕВДОслучайные числа.
Давайте тогда сразу перейдём к тому, что совершенно случайное число получить вообще невозможно, чего уж там. У вихря Мерсенна, который посоветовал soon, период составляет 2^19937-1, мало что ли?
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
11.09.2012, 21:06     Чайник VS Случайные числа #7
Цитата Сообщение от PSIAlt Посмотреть сообщение
Насчем с того что комп может генерить только ПСЕВДОслучайные числа. Использование комбинации srand+rand тем более от времени считается слабо случайным. К томуже, алгоритмы случайных числел основаны на сдвигах итд, и в конце концов они имеют период повторения.
Это большая трабла в индустрии вообще, особенно в шифровальных делах. Intel вкладывает бабос чтобы делать модуля в ЦПУ, которые умеют генерить тру-случайные числа используя флустрации температуры, ну и т.д. и т.п., короче если нужны _реально_ случайные числа то тут проблема.
Я точно не помню, но есть какой-то сайт, который генерирует ДЕЙСТВИТЕЛЬНО случайные числа на основе атмосферных шумов. В принципе, в каком-то серьёзном проекте с подключением к интернету вполне реально использовать API с этого сайта. Ещё раз повторю - подробности не помню, но тема мелькала на Хабре.
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.09.2012, 21:14     Чайник VS Случайные числа #8
PreFX, random.org
Но я солидарен с NoMasters, и также считаю, что любое сгенерированное число можно предсказать. Вопрос лишь в том, какой объем информации необходимо для этого обработать.
Thinker
11.09.2012, 21:55
  #9

Не по теме:

есть такое направление в философии - детерминизм, который утверждает, что ничего случайного нет, все имеет причинно-следственную связь. Если так, то не существует случайных чисел. Так что это вопрос философский.

PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
11.09.2012, 21:59     Чайник VS Случайные числа #10
soon, если бы наши компьютеры могли принимать множество специфических данных ( как то активность мозга, который ещё почти не изучен, или движение тех же квантов) и обрабатывать их, тогда мы могли бы предугадать всё, что угодно ( но куда уж нам). Однако до тех пор ( ещё лет эдак 3000) мы спокойно можем утверждать, что такие числа случайны.

Добавлено через 1 минуту
Хотя я сам уверен в том, что случайности не случайны (с)
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
11.09.2012, 22:49     Чайник VS Случайные числа #11
Цитата Сообщение от Thinker Посмотреть сообщение

Не по теме:

есть такое направление в философии - детерминизм, который утверждает, что ничего случайного нет, все имеет причинно-следственную связь. Если так, то не существует случайных чисел. Так что это вопрос философский.

Не по теме:

А есть такое направление в физике: квантовая механика, которая утверждает, что на достаточно маленьких масштабах, как бы точно мы не смотрели, мы не сможем предсказать точно поведение частичек.

NoMasters
11.09.2012, 22:53
  #12

Не по теме:

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
квантовая механика
Они фаталисты просто

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2012, 23:50     Чайник VS Случайные числа
Еще ссылки по теме:

Случайные числа - C++
int main() { srand(time(0)); int a = rand()%100; cout &lt;&lt; a &lt;&lt; endl; system(&quot;pause&quot;); } Есть вот такой способ задания...

Случайные числа от -10 до 10 - C++
сижу я значит и не могу вывести случайные числа от -10 до 10! Получается только от -50 до 50, for(int j= 0; j&lt;8; j++) ...

случайные числа - C++
Всем привет! нужна ваша помощь. мне нужно реализовать функцию, которая заполняет двумерный массив mat случайными числами. на сколько я...

случайные числа - C++
как заполнить массив случайными числами например от -50 до 50 void generate(int mas,int n){ for(int i=0;i&lt;n;i++) mas=(rand()%50)-50; ...

Случайные числа - C++
void rndChain(){ system(&quot;cls&quot;); SetConsoleTitleA(&quot;dovjina zrost vibirki&quot;); ...


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

Или воспользуйтесь поиском по форуму:
Dani
11.09.2012, 23:50     Чайник VS Случайные числа
  #13

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
есть такое направление в философии - детерминизм, который утверждает, что ничего случайного нет, все имеет причинно-следственную связь. Если так, то не существует случайных чисел. Так что это вопрос философский.
1) эти числа - псевдослучайные;
2) я где-то когда-то читал, что случайные числа получаются, то-ли из траектории движения фотонов, то-ли из еще чего-то, связанного с фотонами.

Yandex
Объявления
11.09.2012, 23:50     Чайник VS Случайные числа
Ответ Создать тему
Опции темы

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