Je n'ai rien à faire, et récemment j'ai besoin d'écrire la connexion de l'utilisateur à la page d'accueil pour découvrir des enveloppes rouges en espèces, et il n'y a pas de limite. Je viens de calculer comment écrire s'il y a une limite. Je pense que cela est similaire aux enveloppes rouges WeChat. Une fois les exigences du projet terminées. Il m'est arrivé de publier l'algorithme d'élimination de l'enveloppe rouge que j'ai écrit moi-même. Je pense personnellement que cet algorithme simule davantage les règles réelles de la saisie de l'enveloppe rouge. Dites moins de bêtises. Publier d'abord le code;
Importer java.math.bigdecimal; import java.util.arraylist; import java.util.collections; import java.util.list; import java.util.random; public class testmain {public static main main (string [] args) {for (int i = 0; i <10; i ++) {liste math (bigdecimal.valueof (10), 6); if (Moneys! = null) {bigdecimal b = new BigDecimal (0); pour (BigDecimal Bigdecimal: Moneys) {System.out.print (BigDecimal + "Yuan"); b = b.Add (bigdecimal); } System.out.print ("Montant total:" + B + "Yuan"); System.out.println (); }}} / ** * Calculez la quantité d'enveloppes rouges reçues par chaque personne; La quantité minimale d'enveloppes rouges par personne est de 0,01 yuan par personne * @param mm enveloppes rouges totales * @param numéro de nombre de personnes * @return * / public static list <bigdecimal> math (bigdecimal mmmm, int } Random Random = new Random (); // argent, 10 yuans est calculé par des fractions égales à 1000 points en argent = mmmm.multiply (bigdecimal.valueof (100)). IntValue (); // Nombre aléatoire total Coup de double = 0; // chaque personne obtient des points aléatoires doubles [] arrrandom = new double [nombre]; // chaque personne obtient une liste d'argent <bigdecimal> armoney = new ArrayList <bigdecimal> (numéro); // le nombre de personnes qui bouclent des points aléatoires pour (int i = 0; i <arrrandom.length; i ++) {int r = random.nextint ((nombre) * 99) + 1; count + = r; arrrandom [i] = r; } // Calculez la quantité obtenue par chaque personne en ouvrant l'enveloppe rouge int c = 0; pour (int i = 0; i <arrrandom.length; i ++) {// additionnez chaque personne en ajoutant des nombres aléatoires pour calculer le pourcentage de chaque personne double x = nouveau double (arrrandom [i] / count); // chaque personne obtient le montant obtenu par chaque personne par pourcentage int m = (int) math.floor (x * monery); // Si 0 montant est obtenu, définissez la valeur minimale de 1 cent if (m == 0) {m = 1; } // Calculez le montant total C + = M; // Si ce n'est pas la dernière personne, calculez-la normalement si (i <Arrrandom.length - 1) {Arrmoney.add (new BigDecimal (M) .divide (new BigDecimal (100))); } else {// Si c'est la dernière personne, donnez l'argent restant à la dernière personne Arrmoney.add (nouveau BigDecimal (argent - C + M) .divide (nouveau BigDecimal (100))); }} // perturber au hasard le montant obtenu par chaque personne Collection.Shuffle (Arrmoney); retour arrmoney; }}La logique de pensée de cet ensemble de code:
1. Tout d'abord, nous devons diviser le montant de l'enveloppe rouge en n parts en fonction du nombre de personnes, mais en raison de la valeur moyenne. Si chaque personne marque trop uniformément, cela semblera être jouable.
2. Deuxièmement, comment devons-nous distinguer? Pour s'assurer que les enveloppes rouges sont jouables. En fait, je ne pense pas que cela compte. Après tout, les enveloppes rouges ne dépendent que de la chance. Je n'ai pas eu la chance de jouer des enveloppes Red Wechat pour 20 yuans et 3 points de personnes. J'ai également obtenu 0,01 yuan. La concurrence sera également très importante. Ainsi, mon ensemble de codes a simplement mis tout le monde sur un nombre aléatoire (la gamme de nombres aléatoires est un nombre de personnes * 100), ajouter les nombres aléatoires de ces personnes et calculer le pourcentage du nombre aléatoire de chaque personne. Distribuez les dividendes en fonction de ce pourcentage.
Ce qui précède est l'algorithme de saisie de l'enveloppe rouge de l'implémentation Java Implémentation INTROSSIBLE par l'éditeur (simulant Real Red Enveloppe Grabing). J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!