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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
n0n4m3r
25 / 25 / 6
Регистрация: 12.10.2013
Сообщений: 183
#1

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

08.01.2014, 02:27. Просмотров 2111. Ответов 24
Метки нет (Все метки)

Возможно кому-то пригодится. Без дополнительных библиотек, вроде сносный такой генератор.
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
29
30
31
#include <iostream>
#include <cmath>
#include <ctime>
 
using namespace std;
 
int main(){
    int min,max,range,number;
    srand (time(NULL));
    cout << "Enter minimum ammount: ";
    cin >> min;
    cout << "Enter maximum ammount: ";
    cin >> max;
    cout << "Enter max numbers after dot: ";
    cin >> range; 
    cout << "Enter ammount of float numbers: ";
    cin >> number;
 
 
    for(int i=0; i<number; i++){
        float sum=(rand()%(abs(min)+abs(max))-abs(min))*pow(0.1,rand()%(range+1));
        if(sum<0 && sum>-1){
            sum=(sum+rand()%min)*(-1);
        } else if(sum>0 && sum <1){
            sum=sum+rand()%max;
        }
        cout << sum << endl;
    }
    system("pause");
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 02:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генератор случайных вещественных чисел, C++ (C++):

Генератор случайных вещественных чисел в динамическом массиве - C++
Всем привет Мне нужна помощь в следующем. нужно заполнить динамический массив рандоными вещественными числами, чтобы были как с &quot;-&quot;,...

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

Генератор случайных чисел - C++
Всем привет, вот такая задачка. &quot;Датчики случайных чисел можно привлекать при подборе проверочных исходных данных для программ. а) 25...

Генератор случайных чисел - C++
Здорова господа! Нужно написать свой собственный генератор случайных чисел, такой же примерно как rand. От примерно написал кое...

Генератор случайных чисел - C++
Еще ни разу не использовал rand(), знаю что перед ним нужно srand(time(NULL)), потому как без этого числа будут одинаковы постоянно. Но не...

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

24
gromo
372 / 271 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
08.01.2014, 02:46 #2
Спасибо! Я как раз искал!!!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
08.01.2014, 03:40 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iomanip>
#include <iostream>
#include <random>
 
int main()
{
    int lbound, ubound, precision, amount;
    std::cout << "Enter lower bound: ";
    std::cin >> lbound;
    std::cout << "Enter upper bound: ";
    std::cin >> ubound;
    std::cout << "Enter precision: ";
    std::cin >> precision;
    std::cout << "Enter ammount of numbers: ";
    std::cin >> amount;
 
    std::uniform_real_distribution<double> dist(lbound, ubound);
    std::mt19937 gen {std::random_device()() }; // gen.seed(time(0));
 
    for(int i=0; i < amount; i++)
        std::cout << std::fixed << std::setprecision(precision) << dist(gen) << " ";
}
2
Ressima
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 1
11.01.2014, 18:24 #4
Народ, нужна программа, которая при запуске генерирует случайное число от 0 до 9, а затем через каждые 5 секунд пишет еще одно число на следующей строчки и так пока не закроется программа. Как это можно сделать?
0
n0n4m3r
25 / 25 / 6
Регистрация: 12.10.2013
Сообщений: 183
11.01.2014, 22:34  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <time.h>
#include <Windows.h>
 
using namespace std;
 
int main(){
    srand(time(NULL));
    int i, a;
    for(i=1;i<2;){
        cout << "Random number is " << rand()%10 << endl;
        Sleep(5000);
    }
 
    system("pause");
    return 0;
}
0
ilja123
43 / 43 / 7
Регистрация: 24.12.2009
Сообщений: 404
11.01.2014, 23:05 #6
Sleep не пойдет! (токо windows) Что MrGluck, вообще понятно ток ему Юзай мой код Преимущества Понятный и везде работает Недостатки зависит от процессора (надо корректировать индивидуально)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    for(int i=1; i<2;){
        cout << "Ran num is: " << rand()%10 << endl;
        for(int j=0; j<800000000; j++){;}
    }
 
}
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.01.2014, 23:38 #7
Ressima,
правда кушает хорошо CPU:
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int getRand(unsigned maxBound)
{
    srand(time(0));
    return rand() % maxBound + 1;
}
 
int main()
{
    const int maxRandBound = 9;
    const int secondsDelay = 5;
 
    std::cout << getRand(maxRandBound) << '\n';
    while (true)
    {
        time_t start = time(0);
        while (time(0) < start + secondsDelay)
            ;
        std::cout << getRand(maxRandBound) << '\n';
    }
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
11.01.2014, 23:57 #8
Цитата Сообщение от ilja123 Посмотреть сообщение
Юзай мой код Преимущества Понятный и везде работает
ну да, ну да. Учитывая что любой мало-мальски новый компилятор ваш код соптимизирует и выкинет пустой цикл.
0
ilja123
43 / 43 / 7
Регистрация: 24.12.2009
Сообщений: 404
12.01.2014, 00:00 #9
MrGluck,
uniform_real_distribution<double>
Это только в С++11 работает. Не лучший вариант предлагать такое в разделе "для новичков".
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.01.2014, 00:06 #10
Цитата Сообщение от ilja123 Посмотреть сообщение
Это только в С++11 работает. Не лучший вариант предлагать такое в разделе "для новичков".
Новичкам пора осваивать современные стандарты.
1
ilja123
43 / 43 / 7
Регистрация: 24.12.2009
Сообщений: 404
12.01.2014, 00:08 #11
Я только ЗА! Но фраза компилятора
warning: identifier is a keyword in C++11
Может травмировать начинающих Сишников
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.01.2014, 00:10 #12
Цитата Сообщение от ilja123 Посмотреть сообщение
Может травмировать начинающих Сишников
сишникам в раздел "си", а тут плюсы как никак. В конце этого года ещё С++14 должны принять, так что время на месте не стоит.
0
ilja123
43 / 43 / 7
Регистрация: 24.12.2009
Сообщений: 404
12.01.2014, 00:14 #13
Цитата Сообщение от Tulosba Посмотреть сообщение
В конце этого года ещё С++14 должны принять

И какие там перемены? Есть че почитать???
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.01.2014, 00:20 #14
Цитата Сообщение от ilja123 Посмотреть сообщение
Есть че почитать???
Начните с вики. В основном исправления C++11.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
12.01.2014, 00:21 #15
Цитата Сообщение от ilja123 Посмотреть сообщение
Это только в С++11 работает. Не лучший вариант предлагать такое в разделе "для новичков".
ну да, uniform_int_distribution намного сложнее чем эти формулы с просчетом СЧ в диапазоне не от 0 до N-1. А есле еще и нужно СЧ не из класса целых чисел... такая жопопляска начинается.

Вот вам мануальчик, сам писал:
http://www.quizful.net/post/random-number-generation-in-cpp11
1
12.01.2014, 00:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 00:21
Привет! Вот еще темы с ответами:

Генератор случайных чисел - C++
Вот написал программу, которая генерирует матрицу 9*9. В каждой строке - от 1 до 9, не повторяются В каждом стобце - то же самое. ...

Генератор случайных чисел - C++
Добрый вечер! Собственно-то тако задание: необходимо правильно задать параметры для ЛКГ и написать функцию, возвращающую случайные числа,...

Генератор случайных чисел - C++
Как написать генератор случайных (пусть и псевдо) чисел, выдающий на выходе целые случайные числа от 1 до 10 и в кол-ве 10-и и без...

Генератор случайных чисел - C++
Реализовать генератор случайных числе в диапазоне от нуля до единицы. После генерации случайного числа, записывать 0 или 1 (в соответствии...


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

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

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