¿Cómo se genera un número aleatorio dentro de un rango sin incluir cierto rango (s)? P.ej. 1-10 variar pero no en 2-4 ó 7. Soluciones que he utilizado hasta ahora:Generando un número aleatorio excluyendo el rango
- generar una una prueba al azar si está dentro del rango dis-permitidos. Según el resultado, ya sea salida el número o intente de nuevo.
- El mapa permitido tiene un rango uniforme. Obtenga un aleatorio entre 1 y 6 y luego trace hacia atrás (es decir, 6 se convierte en 10).
- Crear rangos permitidos (1-1,5-6,8-10). Elija aleatoriamente un rango (opcionalmente utilice pesos) y un número en el rango elegido.
¿Cuál es su solución?
(c) también debe usar rangos ponderados. De lo contrario, considere: 0..10, 20..80, 90..100; hay tres rangos, pero si los intervalos son igualmente probables de ser seleccionados, entonces verá resultados muy sesgados. –
Sí, si la distribución es importante (de ahí mi afirmación sobre el uso opcional de ponderaciones). También soy consciente de los inconvenientes de cada método: me preguntaba si existe una solución más elegante :) – Goran