Zufallszahl durch Prozentsatz C ++

stimmen
-1

Das Problem ist also, um zufällige Zahlen von 0 bis 100 (100%) betragen und 30% rot werden muss, hat 20% grün blau und 50% sein. Ich das Konzept verstehen, kann aber nicht die Mathematik für if-Anweisung auf die Prozentsätze herauszufinden.

Veröffentlicht am 13/02/2020 um 21:56
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

wenn Sie Zufallszahl in Bereich haben [1-100] dann Logik

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Beantwortet am 13/02/2020 um 22:16
quelle vom benutzer

stimmen
0

Die beste Darstellung für Prozentpunkte schweben, 0% 0 und 100% ist

Zum Glück C # bietet eine große opinionated Funktion für diesen Zweck: Random.NextDouble ()

So generieren Sie einen zufälligen float nennen es einfach wie folgt:

Zufällige seeded_random_number_generator = new Random (); red_portion = seeded_random_number_generator.NextDouble ();

Schließlich Ihr Doppel verwenden nur Multipliziere sie mit den anderen Faktor.

area_to_paint_red = red_portion * shape_area

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

Beantwortet am 13/02/2020 um 22:19
quelle vom benutzer

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