Le sophisme du joueur est un biais cognitif où nous nous attendons à tort à ce que les événements qui se sont produits soient moins susceptibles de se produire à l'avenir et les événements qui ne se sont pas produits depuis longtemps soient plus susceptibles de se produire bientôt. Votre tâche consiste à implémenter une version spécifique de cela.
Explication du défi
Écrivez une fonction qui renvoie un entier aléatoire compris entre 1 et 6, inclus. Le hic: la première fois que la fonction est exécutée, le résultat doit être uniforme (à moins de 1%), cependant, chaque appel suivant sera faussé en faveur de valeurs qui ont été roulées moins de fois auparavant. Les détails spécifiques sont les suivants:
- Le dé se souvient du nombre de nombres générés jusqu'à présent.
- Chaque résultat est pondéré avec la formule suivante:
- Par exemple, si le nombre de rouleaux jusqu'à présent est , les poids seront , c'est-à-dire que vous serez 4 fois plus susceptibles de lancer un qu'un .
- Notez que la formule signifie qu'un résultat de roulis de est pondéré de la même façon que
Règles et hypothèses
- Les règles d'E / S standard et les failles interdites s'appliquent
- Les lancers ne doivent pas être déterministes. (c.-à-d. utiliser un PRNG issu d'une source volatile, comme cela est généralement disponible en tant que module intégré.)
- Votre source aléatoire doit avoir une période d'au moins 65535 ou être un vrai hasard.
- Les distributions doivent être inférieures à 1% pour les poids jusqu'à 255
- Les RNG 16 bits sont suffisamment bons pour répondre aux deux exigences ci-dessus. La plupart des RNG intégrés sont suffisants.
- Vous pouvez transmettre la distribution actuelle tant que cette distribution est mutée par l'appel ou que la distribution post-roll est renvoyée avec le dé. La mise à jour de la distribution / des comptages fait partie de ce défi .
- Vous pouvez utiliser des poids au lieu de comptes. Ce faisant, chaque fois qu'un poids tombe à 0, tous les poids doivent augmenter de 1 pour obtenir le même effet que le stockage des comptes.
- Vous pouvez utiliser ces poids comme répétitions d'éléments dans un tableau.
Bonne chance. Que les octets soient toujours en votre faveur.