Я хочу сгенерировать 10 случайных чисел в C++ между 1 и 3 внутри цикла таким образом, что 1 приходит больше всего (скажем, 50% раз), затем 2 (30% раз), а затем 3 (20%). Можно ли это сделать?Генерация случайных чисел с определенной вероятностью
Я сделал следующий код, чтобы получить случайные числа от 1 до 3, но как я могу добавить вероятности?
#include <iostream>
#include <windows.h>
#include "time.h"
int main(int argc, char*argv[])
{
srand (time(NULL));
for (int t = 0; t < 10; t++)
{
int random_x;
random_x = rand() % 3+1;
std::cout << "\nRandom X = " << random_x << std::endl;
}
Sleep(50000);
return 0;
}
Вы можете проверить встроенные дистрибутивы [здесь] (http://en.cppreference.com/w/cpp/numeric/random) – NathanOliver