JAVA实现红包分发的示例代码

作者:Evrse 时间:2022-10-08 06:18:15 

大体思路

如果发总金额为 m的 n 个红包,先用一个长度为 n的临时数组 a 存放 n个随机双精度小数JAVA实现红包分发的示例代码 ,然后用  sum表示数组 a 的和,每个红包的金额JAVA实现红包分发的示例代码

代码


import java.util.Arrays;
import java.util.Random;
import java.math.*;
import java.util.Scanner;

public class Main {
public static long now_time;
public static long seed;
public static int[] get_red_packets(int money, int num) {
 Random random = new Random(seed);
 seed = random.nextLong();
 int[] res = new int[num];
 double[] temp=new double[num];
 double sum = 0;
 int sum2 = 0;
 for (int i = 0; i < num; i++) {
  temp[i] = random.nextDouble();
  sum += temp[i];
 }
 for (int i = 0; i < num; i++) {
  res[i] = 1+ (int)(temp[i] / sum * (money-num));
  sum2 += res[i]-1;
 }
 res[random.nextInt(num)]+=money-sum2-num;
 return res;
}

public static void show(int[] red_packet){
 System.out.println("红包 : " + Arrays.toString(red_packet));
}

public static void main(String[] args) {
 int num, money;
 Scanner scanner = new Scanner(System.in);
 now_time = System.currentTimeMillis();
 Random init_random = new Random(now_time);
 seed = init_random.nextLong();
 System.out.println("请输入要分发的红包数量:");
 num = scanner.nextInt();
 System.out.println("请输入要分发的红包总金额(分):");
 money = scanner.nextInt();
 int a[] = get_red_packets(money,num);
 show(a);
}
}

来源:https://blog.csdn.net/Evrse/article/details/110144412

标签:JAVA,红包分发
0
投稿

猜你喜欢

  • Java 添加和删除PDF图层的示例代码

    2022-09-03 00:29:01
  • OPENCV+JAVA实现人脸识别

    2022-03-15 18:31:39
  • Spring Cloud详解实现声明式微服务调用OpenFeign方法

    2021-07-04 07:56:41
  • 深入浅析java中flyway使用简介

    2022-06-05 20:45:45
  • java_object的简单使用详解

    2023-08-22 11:35:57
  • 浅谈Java中的Filter过滤器

    2023-07-23 10:00:08
  • 详解C#中的string与String

    2023-07-30 01:58:01
  • Android编程设计模式之Builder模式实例详解

    2023-02-02 05:34:57
  • SpringBoot JPA实现增删改查、分页、排序、事务操作等功能示例

    2023-06-27 23:54:05
  • Java中对象的销毁方法分析

    2023-01-09 16:44:29
  • C#操作JSON(序列化与反序列化)的方法详解

    2022-01-27 20:15:10
  • Java实现简单QQ聊天工具

    2023-11-25 05:54:52
  • java中Unsafe的使用讲解

    2022-08-02 08:08:18
  • C++实现String类的方法详解

    2023-04-27 08:49:27
  • Android实现在一个activity中添加多个listview的方法

    2023-10-13 14:41:22
  • Struts2拦截器登录验证实例

    2021-10-26 06:47:04
  • Android 如何使用短信链接打开APP

    2022-01-09 02:45:25
  • 详解Spring的两种代理方式:JDK动态代理和CGLIB动态代理

    2023-08-08 14:38:37
  • C#编程实现向并口设备发送指令、获取并口设备的状态

    2023-02-02 02:56:39
  • Maven Plugin的@Mojo和@Execute的具体使用

    2021-12-19 05:23:17
  • asp之家 软件编程 m.aspxhome.com