Как получить равномерно распределенное случайное число?

Я пытаюсь сгенерировать три случайных числа внутри цикла:

for (i=0; i<100; i++)
{
item1 = rand()/(double)RAND_MAX*100;
item2 = rand()/(double)RAND_MAX*200;
item3 = rand()/(double)RAND_MAX*300;
}

Итак, мой вопрос:

Как получить одинаково расположенное случайное число для каждого элемента 1, 2 и 3

как item1 = 10,20,30,40,50 item2 = 40, 60, 80, item3 = 25,35,45 и т. д.

-4

Решение

Вы просто хотите округлить случайные числа или масштабировать / проецировать их после генерации.

Это … умножение. Образец: (Жить на Колиру)

#include <random>
#include <iostream>

int main()
{
std::mt19937 engine(time(NULL));
std::uniform_int_distribution<int> dist(0,10); // arbitrary range chosen

for (int i=30; i>0; --i)
{
int random = dist(engine);
std::cout << (random*10) << "\t" << (random*20) << "\t" << (random*10 + 15) << "\n";
}
}

Выход:

90  180 105
30  60  45
90  180 105
50  100 65
70  140 85
10  20  25
40  80  55
30  60  45
80  160 95
60  120 75
0   0   15
40  80  55
20  40  35
20  40  35
90  180 105
50  100 65
80  160 95
0   0   15
0   0   15
0   0   15
40  80  55
50  100 65
10  20  25
60  120 75
100 200 115
80  160 95
70  140 85
90  180 105
30  60  45
60  120 75
0

Другие решения

Числа, которые вы хотите, вовсе не случайные, это последовательность

Вы можете сделать что-то вроде

int sequence =5;
int initial=10;

For (i=0; i<100; i++)
{
item1 = initial;
initial=initial+sequence;
item2 = initial;
initial=initial+sequence;
item3 = initial;
initial=initial+sequence;
}

Это сгенерирует 10, 15, 20, …

0

Может быть, вы пытаетесь получить начальное случайное число случайной равноправной последовательности, например так:

for (i=0; i<100; i++)
{
if(i == 0)
{
item1 = rand()/(double)RAND_MAX*100;
item2 = rand()/(double)RAND_MAX*200;
item3 = rand()/(double)RAND_MAX*300;

increment1 = rand()/(double)RAND_MAX*100;
increment2 = rand()/(double)RAND_MAX*200;
increment3 = rand()/(double)RAND_MAX*300;
}
else
{
item1 += increment1;
item2 += increment2;
item3 += increment3;
}

//do stuff
}
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector