No tengo nada que hacer, y recientemente necesito escribir el inicio de sesión del usuario en la página de inicio para descubrir sobres rojos en efectivo, y no hay límite. Acabo de calcular cómo escribir si hay un límite. Creo que esto es similar a los sobres rojos de WeChat. Después de completar los requisitos del proyecto. Publiqué el algoritmo de eliminación del sobre rojo que escribí yo mismo. Personalmente, creo que este algoritmo está simulando más las reglas reales de agarre del sobre rojo. Decir menos tonterías. Publicar el código primero;
import java.math.BigDecimal;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;public class TestMain { public static void main(String[] args) { for (int i = 0; i < 10; i++) { List<BigDecimal> moneys = matemáticas (BigDecimal.ValueOf (10), 6); if (moneys! = null) {bigDecimal b = new BigDecimal (0); para (BigDecimal BigDecimal: Moneys) {System.out.print (bigDecimal + "yuan"); b = B.Add (BigDecimal); } System.out.print ("Cantidad total:" + B + "yuan"); System.out.println (); }}} /*** Calcule la cantidad de sobres rojos recibidos por cada persona; La cantidad mínima de sobres rojos por persona es 0.01 yuan por persona* @param mm sobres rojos totales* @param número de personas de personas* @return*/ public static list <BigDecimal> math (bigDecimal mmmm, int número) {if (mmm.DoubleValue () <número* 0.01) {return null; } Random random = new Random (); // dinero, 10 yuanes se calculan por fracciones igual a 1000 puntos int dinero = mmmm.multiply (bigDecimal.valueOf (100)). IntValue (); // Número aleatorio total de doble recuento = 0; // Cada persona obtiene puntos aleatorios dobles [] arrrandom = new double [número]; // Cada persona obtiene la lista de dinero <BigDecimal> arrmoney = new ArrayList <BigDecimal> (número); // El número de personas que recorren puntos aleatorios para (int i = 0; i <arrrandom.length; i ++) {int r = random.nextInt ((número) * 99)+1; recuento += r; arrrandom [i] = r; } // Calcule la cantidad obtenida por cada persona abriendo el sobre rojo int c = 0; para (int i = 0; i <arrrandom.length; i ++) {// sumar cada persona agregando números aleatorios para calcular el porcentaje de cada persona doble x = nuevo doble (arrrandom [i] / count); // Cada persona obtiene la cantidad obtenida por cada persona por porcentaje int m = (int) Math.floor (x * dinero); // Si se obtiene 0 cantidad, establezca el valor mínimo de 1 centavo si (M == 0) {M = 1; } // Calcule la cantidad total c += m; // Si no es la última persona, calcule normalmente si (i <arrrandom.length - 1) {arrmoney.add (nuevo bigDecimal (m) .divide (nuevo bigDecimal (100))); } else {// Si es la última persona, entregue el dinero restante a la última persona arrmoney.add (nueva bigDecimal (dinero - c + m) .divide (new BigDecimal (100))); }} // interrumpir la cantidad obtenida por cada persona colección. regresar arrmoney; }}La lógica de pensamiento de este conjunto de código:
1. En primer lugar, necesitamos dividir el monto del sobre rojo en n acciones en función del número de personas, pero debido al valor promedio. Si cada persona anota demasiado uniformemente, parecerá ser jugable.
2. En segundo lugar, ¿cómo debemos distinguir? Para garantizar que los sobres rojos sean jugables. En realidad, no creo que estos importen. Después de todo, los sobres rojos solo dependen de la suerte. Tuve mala suerte de jugar sobres rojos de Wechat por 20 yuanes y 3 puntos de personas. También obtuve 0.01 yuan. La concurrencia también será muy grande. Entonces, mi conjunto de códigos simplemente saca a todos un número aleatorio (el rango de números aleatorios es el número de personas * 100), agregue los números aleatorios de estas personas y calcule el porcentaje del número aleatorio de cada persona. Distribuir los dividendos de acuerdo con este porcentaje.
Lo anterior es el algoritmo de agarre de envoltura roja simple de implementación de Java introducido por el editor (simulando el agarre real del sobre rojo). Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!