число случайных на проценты C ++

голоса
-1

Таким образом, проблема состоит в случайных чисел в диапазоне от 0-100 (100%) и 30% должен быть красным, 20% должна быть синего цвета и 50% зеленого цвета. Я понимаю концепцию, но не могу понять математику для если заявление в процентах.

Задан 13/02/2020 в 23:56
источник пользователем
На других языках...                            


2 ответов

голоса
0

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

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Ответил 14/02/2020 в 00:16
источник пользователем

голоса
0

Лучшее представление для процентов с плавающей точкой, 0% 0 и 100% является

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

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

Случайное seeded_random_number_generator = новый 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

Ответил 14/02/2020 в 00:19
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more