liczb losowych przez procentowe C ++

głosy
-1

Tak więc problem jest liczb losowych w przedziale od 0100 (100%) i 30% ma być czerwony, 20% musi być niebieskie, a 50% jest zielony. Rozumiem ideę, ale nie można dowiedzieć się matematyki dla if do procentów.

Utwórz 13/02/2020 o 21:56
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

jeśli masz liczbę losową w przedziale [1-100] wtedy logika będzie

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Odpowiedział 13/02/2020 o 22:16
źródło użytkownik

głosy
0

Najlepszym reprezentacja wartości procentowe są pływające punktów 0% oznacza 0 a 100%

Na szczęście C # stanowi doskonałą funkcję uparty do tego celu: Random.NextDouble ()

Aby wygenerować losową pływaka po prostu nazwać to tak:

Losowo seeded_random_number_generator = nowy losowo (); red_portion = seeded_random_number_generator.NextDouble ();

Wreszcie używać dublet po prostu pomnożyć przez inny czynnik.

area_to_paint_red = red_portion * shape_area

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

Odpowiedział 13/02/2020 o 22:19
źródło użytkownik

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