Número aleatorio por porcentajes C ++

votos
-1

Así que el problema es a números aleatorios oscilar de 0-100 (100%) y 30% tiene que ser rojo, 20% tiene que ser de color azul y el 50% es de color verde. Entiendo el concepto, pero no puedo averiguar los cálculos por sentencia if para los porcentajes.

Publicado el 13/02/2020 a las 23:56
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

si tiene números aleatorios en el rango [1-100] entonces la lógica habrá

if (num <= 30) return "red"; // covers [1-30]
if (num <= 30+20) return "blue"; // covers [31-50]
return "green"; // covers [51-100]
Respondida el 14/02/2020 a las 00:16
fuente por usuario

votos
0

La mejor representación de los porcentajes son puntos flotando, 0% es 0 y el 100% es

Afortunadamente C # ofrece una gran función obstinado para este propósito: Random.NextDouble ()

Para generar un flotador al azar acaba de llamarlo así:

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

Finalmente usar su doble simplemente se multiplica por el otro factor.

area_to_paint_red = red_portion * shape_area

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

Respondida el 14/02/2020 a las 00:19
fuente por usuario

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