Случайное число по процентам C ++ - PullRequest
0 голосов
/ 13 февраля 2020

Таким образом, проблема состоит в том, что случайные шары находятся в диапазоне от 0 до 100 (100%), в то время как 30% может быть красным, 20% может быть синим и 50% может быть зеленым, я сделал вот что: красный Если шанс меньше 50, то cout blue Если шанс меньше или равен 100, то cout green Есть предложения, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Наилучшим представлением для процентов являются числа с плавающей запятой, 0% - это 0, а 100% - это

К счастью, C# предоставляет для этой цели отличную самоуверенную функцию: Random.NextDouble ()

Чтобы сгенерировать случайное число с плавающей точкой, просто назовите его так:

Random seeded_random_number_generator = new Random (); red_portion = seeded_random_number_generator.NextDouble ();

Наконец, чтобы использовать ваш двойник, просто умножьте его на другой коэффициент.

area_to_paint_red = red_portion * shape_area

Ссылка: https://docs.microsoft.com/en-us/dotnet/api/system.random.nextdouble?view=netframework-4.8

0 голосов
/ 14 февраля 2020

, если у вас есть случайное число в диапазоне [1-100], тогда logi c будет

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...