Simulación de Java para implementar el algoritmo de sobre rojo de WeChat

Este artículo presenta principalmente la implementación Java del algoritmo de sobre rojo de WeChat simulado en detalle. El código de muestra en el artículo es muy detallado y tiene un cierto valor de referencia. Los amigos interesados ​​pueden consultarlo.

Los ejemplos de este artículo comparten el código específico para implementar el algoritmo de sobre rojo de WeChat en Java para su referencia. El contenido específico es el siguiente

Proceso de implementación

1. El código es el siguiente (ejemplo):

import java.math.BigDecimal;
import java.util.ArrayList;

public class GenRedPacket {
    
    
 static ArrayList<BigDecimal> list = new ArrayList<BigDecimal>();;

 public static BigDecimal bianLiJia(ArrayList<BigDecimal> list) {
    
    
 BigDecimal b = new BigDecimal("0");
 for (int i = 0; i < list.size(); i++) {
    
    
 b = b.add(list.get(i));
 }
 return b;
 }

 public static void bianLiJian(BigDecimal b1, BigDecimal b2) {
    
    
 if (bianLiJia(list).doubleValue() < b1.doubleValue()) {
    
    
 BigDecimal b3 = bianLiJia(list);
 BigDecimal b4 = b1.subtract(b3);
 int i = 0;
 list.set(i = (int) (Math.random() * (b2.intValue())), list.get(i).add(b4));
 } else if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
    
    
 BigDecimal b3 = bianLiJia(list);
 BigDecimal b4 = b3.subtract(b1).divide(b2, 2, BigDecimal.ROUND_FLOOR);
 for (int i = 0; i < list.size(); i++) {
    
    
 if (list.get(i).doubleValue() > b4.doubleValue()) {
    
    
  list.set(i, list.get(i).subtract(b4));
 }
 }
 }
 if (bianLiJia(list).doubleValue() > b1.doubleValue()) {
    
    
 BigDecimal b3 = bianLiJia(list);
 BigDecimal b4 = b3.subtract(b1);
 for (int i = 0; i < list.size(); i++) {
    
    
 if (list.get(i).doubleValue() > b4.doubleValue()) {
    
    
  list.set(i, list.get(i).subtract(b4));
 }
 }
 bianLiJian(b1, b2);
 }
 }

 public static ArrayList<BigDecimal> genRedPacket(String total, int count) {
    
    

 BigDecimal b1 = new BigDecimal(total);
 BigDecimal b2 = new BigDecimal(count);
 for (int i = 0; i < count; i++) {
    
    
 String s = String.valueOf(((int) (Math.random() * (Integer.parseInt(total) + 1)))
  + ((int) (Math.random() * 100) + 1) / 100.0);
 BigDecimal b3 = new BigDecimal(s);
 list.add(b3);
 }
 bianLiJian(b1, b2);
 return list;
 }
 
 public void fhb(String total, int count) {
    
    
 genRedPacket(total,count);
 int i = 1;
 for(BigDecimal b:list) {
    
    
 System.out.println("第"+i+"个红包:"+b+"元");
 i++;
 }
 }
}

2. El código es el siguiente (ejemplo):

import java.text.ParseException;
import java.util.Scanner;

public class Test {
    
    

 public static void main(String[] args) throws ParseException {
    
    
 Scanner scanner = new Scanner(System.in);
 GenRedPacket dp = new GenRedPacket();
 System.out.print("请输入要发红包金额与个数:");
 String s1 = scanner.next();
 int a1 = scanner.nextInt();
 dp.fhb(s1, a1);
 }
}

imagen

Lo anterior es todo el contenido de este artículo, espero que sea útil para el estudio de todos y espero que puedan apoyarlo.

Supongo que te gusta

Origin blog.csdn.net/p1830095583/article/details/114945269
Recomendado
Clasificación