Maison  >  Article  >  interface Web  >  JS implémente l'algorithme aléatoire de l'enveloppe rouge WeChat (avec code)

JS implémente l'algorithme aléatoire de l'enveloppe rouge WeChat (avec code)

php中世界最好的语言
php中世界最好的语言original
2018-05-15 11:47:164344parcourir

Cette fois, je vous apporte JS pour implémenter l'algorithme aléatoire de l'enveloppe rouge WeChat (avec code), quelles sont les précautions pour implémenter l'algorithme aléatoire de l'enveloppe rouge WeChat en JS, le Voici des cas pratiques, un Levez-vous et jetez un œil.

Supposons qu'il y ait une enveloppe rouge d'une valeur de 100 yuans et qu'elle doive être envoyée à 10 personnes. Afin de garantir l'équité, l'algorithme doit garantir les principes suivants :

  • Tout le monde peut récupérer au moins 0,01 yuan

  • Tout le monde a des chances égales

  • La somme des montants de chacun est égale à 100 yuans

Mise en œuvre d'une fonction aléatoire simple.

L'idée générale de nombreux amis est la suivante :

Première étape : sélectionnez au hasard un nombre entre 0 et 100 pour obtenir le premier montant de l'enveloppe rouge.

Étape 2 : Sélectionnez au hasard un nombre parmi 0 - le montant restant pour obtenir le deuxième montant de l'enveloppe rouge.

La troisième étape :...

La dernière étape consiste à donner l'argent restant à la dernière personne.

Et ainsi de suite, récupérez les 10 enveloppes rouges. Mais je ne sais pas si vous avez remarqué que c’est évidemment injuste. La personne qui l'attrape en premier a un avantage. La plage aléatoire de la première personne est de 0 à 100, et elle peut obtenir un montant plus important. La plage aléatoire de la dernière personne sera très petite. Si la première personne récupère 90 yuans, alors la dernière personne n'a aucune chance d'obtenir plus de 10 yuans. Simulons ce processus avec du code :

Les résultats des tests sont les suivants :

Les amis attentifs remarqueront que le balance La valeur de est incorrecte, il s'agit d'un problème connu avec l'arithmétique à virgule flottante JavaScript. Bien sûr, il existe de nombreuses solutions. Si vous avez une bonne solution, n'hésitez pas à me laisser un message.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

vue détermine l'utilisation des classes dans le dom

Processus la compilation et le déploiement du projet Vue en non -racines du site Web Explication détaillée de la méthode du répertoire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn