Véletlen számot százalékok C ++

szavazat
-1

Tehát a probléma az, hogy véletlen számokat 0-100 (100%), és 30% van, hogy piros, 20% kell, hogy legyen a kék és 50% zöld. Megértem a koncepció, de nem tud rájönni a matek, ha nyilatkozatot, hogy a százalékok.

A kérdést 13/02/2020 23:56
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

ha véletlen szám tartomány [1-100], akkor a logika lesz

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Válaszolt 14/02/2020 00:16
a forrás felhasználó

szavazat
0

A legjobb képviselete százalékok lebegő pontok, 0% jelentése 0 és 100%

Szerencsére a C # egy nagy nagyképű funkciót erre a célra: Random.NextDouble ()

Ahhoz, hogy egy random úszó csak hívás ez így néz ki:

Véletlen seeded_random_number_generator = új Random (); red_portion = seeded_random_number_generator.NextDouble ();

Végül használja a kettős csak szorozza meg a többi tényező.

area_to_paint_red = red_portion * shape_area

Referencia: https://docs.microsoft.com/en-us/dotnet/api/system.random.nextdouble?view=netframework-4.8

Válaszolt 14/02/2020 00:19
a forrás felhasználó

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