Numero casuale da percentuali C ++

voti
-1

Quindi il problema è di numeri casuali variare da 0-100 (100%) e 30% deve essere rosso, 20% deve essere blu e il 50% è verde. Capisco il concetto, ma non riesco a capire la matematica per if per le percentuali.

È pubblicato 13/02/2020 alle 21:56
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

se si dispone di numeri casuali nell'intervallo [1-100] allora la logica sarà

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Risposto il 13/02/2020 a 22:16
fonte dall'utente

voti
0

La rappresentazione migliore per percentuali sono punti fluttuante, 0% è 0 e 100% è

Fortunatamente C # fornisce una grande funzione supponente per questo scopo: Random.NextDouble ()

Per generare un galleggiante a caso lo chiamano semplicemente in questo modo:

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

Infine di utilizzare il doppio basta moltiplicarlo per l'altro fattore.

area_to_paint_red = red_portion * Shape_Area

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

Risposto il 13/02/2020 a 22:19
fonte dall'utente

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