Je suis d'accord avec les réponses que réel aléatoire dans des petites séries de certains jeux n'est pas souhaitable, car il n'a semble trop injuste pour certains cas d'utilisation.
J'ai écrit un simple Shuffle Sac de la mise en œuvre dans le Rubis et fait quelques tests. La mise en œuvre fait:
- Si elle semble toujours juste ou nous n'avons pas atteint un seuil minimal de rouleaux, il renvoie une juste frapper basé sur la probabilité normale.
- Si la probabilité observée à partir des dernières rouleaux de fait, il semble injuste, elle renvoie un "juste-la ratification de" frapper.
Elle est réputée déloyale fondée sur les limites des probabilités. Par exemple, pour une probabilité de 20%, vous pouvez définir de 10% de la limite inférieure et de 40% de la limite supérieure.
L'utilisation de ces limites, j'ai trouvé qu'avec des séries de 10 coups, de 14,2% du temps, le vrai pseudo de la mise en œuvre produit des résultats qui ont été hors de ces limites. Environ 11% du temps, 0 les coups critiques ont été marqués en 10 essais. 3.3% du temps, 5 ou plus de coups critiques ont été débarqués sur 10. Naturellement, à l'aide de cet algorithme (avec un minimum de rouleau nombre de 5), un montant beaucoup plus faible (0.03%), de la "Fairish" s'est en dehors des limites. Même si l'application est inadéquat (plus intelligente de faire les choses, certes), il est intéressant de noter que le fait souvent, vos utilisateurs auront l'impression que c'est injuste, avec un vrai pseudo solution.
Ici est la viande de mon FairishBag
écrit en Ruby. L'ensemble de la mise en œuvre rapide et la simulation de Monte Carlo est disponible ici (gist).
def fire!
hit = if @rolls >= @min_rolls && observed_probability > @unfair_high
false
elsif @rolls >= @min_rolls && observed_probability < @unfair_low
true
else
rand <= @probability
end
@hits += 1 if hit
@rolls += 1
return hit
end
def observed_probability
@hits.to_f / @rolls
end
Mise à jour: cette méthode n'est augmenter la probabilité d'obtenir un coup critique, à environ 22% en utilisant les limites ci-dessus. Vous pouvez compenser cela par la mise en son "véritable" probabilité un peu plus bas. Une probabilité de 17,5% avec le fairish modification des rendements observée à long terme de probabilité d'environ 20%, et de garder le court terme s'exécute sentiment juste.