Si quería tener un morir que rodó, por ejemplo:
| Roll | Prob (in %) |
|------|-------------|
| 1 | 60 |
| 2 | 25 |
| 3 | 12 |
| 4 | 4 |
| 5 | 1 |
| 6 | 0.2 |
| 7 | 0.04 |
| ... | ... |
(Estos números son la parte superior de mi cabeza, y no necesariamente seguir un algoritmo simple)
¿Qué tipos de algoritmos puedo describir mediante programación así que pude rollo1 número exponencialmente con la disminución de las probabilidades?
Estaba pensando que si me genera una tabla de probabilidades mediante una curva exponencial yo no sería capaz de garantizar mi función resuelve; Si yo empecé 1
roll y tuvo un par de fallos en una fila, yo nunca podría tener un éxito rollo; y yo no se puede iniciar en el otro extremo en el trabajo de mi camino hacia un rollo de 1
con una probabilidad de 100%
, porque es infinitamente larga y no hay ningún final para que se inicie en2.
Entonces, ¿cómo puedo escoger un número que a partir de esta distribución? Si es posible, la distribución exponencial o cuadráticamente de la caries, pero cualquier distribución que podría modelo algo como:
1. The number of rooms in a house
2. The number of items in a treasure chest
3. The number of eyeballs on a mutant
Un final, pero no es necesario el punto de que se puede considerar es la facilidad de que el algoritmo puede ser modificado para estirar/acortar la curva, para hacer números bajos a menos/más probable.
1: Restricción de equipo de precisión; un rollo de MAXINT o lo que sería en la práctica el máximo
2: de Nuevo, en la práctica, una computadora puede hacerlo porque hay un menor de flotación para la probabilidad, pero que sería terriblemente ineficiente. El caso promedio tomaría miles de millones de rollos de papel, mientras que un buen algoritmo probablemente podría hacer en O(1) por elegir sólo una fracción y su resolución.