Nombre aléatoire par des pourcentages C ++

voix
-1

Donc, le problème est de nombres aléatoires vont de 0-100 (100%) et 30% doit être rouge, 20% doit être bleu et 50% est vert. Je comprends le concept mais ne peut pas comprendre les mathématiques pour instruction if aux pourcentages.

Créé 13/02/2020 à 23:56
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

si vous avez nombre aléatoire dans la gamme [1-100] alors la logique sera

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Créé 14/02/2020 à 00:16
source utilisateur

voix
0

La meilleure représentation des pourcentages sont flottants, 0% est 0 et 100%

Heureusement C # fournit une grande fonction opiniâtres à cet effet: Random.NextDouble ()

Pour générer un flotteur aléatoire simplement l'appeler comme ceci:

Au hasard seeded_random_number_generator = new Random (); red_portion = seeded_random_number_generator.NextDouble ();

Enfin, pour utiliser son double suffit de multiplier par l'autre facteur.

area_to_paint_red = red_portion * Shape_Area

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

Créé 14/02/2020 à 00:19
source utilisateur

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