写了一个微信红包的算法,记录一下,后续争取再优化一下,大佬们也帮忙看一下。

import java.util.HashMap;
import java.util.Map;public class WXTRedPackage {public static void main(String[] args) {WXTRedPackage wx = new WXTRedPackage();// 红包钱数(以分为单位),个数wx.WXMoney(1000, 50);}public void WXMoney(int sum, int num) {// 创建一个hashmap,把分配出来的人和钱顺序打乱Map<Integer, Integer> moneyMap = new HashMap();System.out.println("共计" + sum / 100 + "元红包,分成" + num + "份。开始:");int min = 0;int balance = sum;int money = 0;for (int i = 0; i < num; i++) {if ((double) sum / num == 1) {moneyMap.put(i, 1);} else {// 最大可分配数目为剩下的人每人至少1分钱int max = balance - (num - i - 1) * 1;// 获取一个0-最大可分配数的随机数money = (int) (Math.random() * max);// 最后一个人全分配最后的余额if (i == num - 1) {moneyMap.put(i, balance);break;} else {// 分配的金额要超过0份,小于最大可分配数,不符合要求则把人数减一重新循环一次if (money > min && money < max) {balance -= money;moneyMap.put(i, money);} else {i = i - 1;}}}}for (Integer key : moneyMap.keySet()) {System.out.println("第" + (key + 1) + "人获取红包"+ (double) moneyMap.get(key) / 100 + "元!");}}
}

java写的微信红包算法--田小江相关推荐

  1. matlab 发微信,微信红包算法MATLAB实现

    上午看到基友分享的微信红包算法的文章,代码很短,春节期间红包太火了,看完就也想实现下玩玩,原代码是JAVA的,没接触过JAVA,所以看懂后改成了MATLAB的.原文链接:微信红包随机算法初探 , 作者 ...

  2. matlab程序模拟微信抢红包,微信红包算法MATLAB实现

    上午看到基友分享的微信红包算法的文章,代码很短,春节期间红包太火了,看完就也想实现下玩玩,原代码是JAVA的,没接触过JAVA,所以看懂后改成了MATLAB的.原文链接:微信红包随机算法初探 , 作者 ...

  3. 一不小心错过的几个亿还可以再回来!解密微信红包算法

    前言 ◆ ◆ ◆ ◆ 还记得2017年,微信红包收发总量达到460亿个,2019年,除夕到初五,8.23亿人收发微信红包.一觉醒来,微信群里各种红包,顿时觉得错过了几个亿,破解了红包的规律,是不是就可 ...

  4. js 实现微信红包算法

    微信红包算法 5块钱生成五个红包,要注意的有 1.生成5个随机数 2.5个随机数加起来必须等于5 3.红包要设置最小值 如最小值不能小于0.01 4.红包要设置最大值,如果第一个红包为5,剩下四个红包 ...

  5. 用Java写一个水仙花数算法

    水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身.例如:153=1^3+5^3+3^3. 以下是用 Java 写的水仙花数算法: public class Narcissisti ...

  6. 微信红包算法代码实现

    微信红包算法思考学习研究 闲来无事,研究下微信的红包算法,也思考下可以实现的其他算法,略作记录. 微信红包的随机算法不是在发红包时就算好的,而是用户在领取红包时实时计算出客户领取红包金额,因此红包的算 ...

  7. java红包记录_微信红包算法(java)

    package com.example.ant.common.tools; import java.util.LinkedList; import java.util.List; /** * 描述:红 ...

  8. java微信红包开发_微信红包算法(java)

    package com.example.ant.common.tools; import java.util.LinkedList; import java.util.List; /** * 描述:红 ...

  9. java实现微信抢红包_GitHub - collection8899/RedPackage: java 实现仿照微信抢红包算法

    实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...

最新文章

  1. java if (name!=null name!=),命名不规范,lombok泪两行!
  2. 基于jQuery+ashx+.net实现三级栏目联动操作
  3. php 替换 乱码,php文字替换出现乱码
  4. python转csv_python如何将列表存储为csv文件
  5. ArrayList用法说明
  6. Linux kernel 中模块化的平台驱动代码介绍
  7. 获取当前ip_百度定位:IP定位、浏览器定位、SDK辅助定位
  8. java 事件处理机制
  9. linux log变色
  10. 阿里云眼中的“云网络3.0”:构建应用、云、边一体网络
  11. 读书笔记之《史记》读后感心得体会
  12. 如何在Mac上恢复未保存的word文档
  13. 十、网络编程(高琪java300集+java从入门到精通笔记)
  14. html中放大镜字体图标,CSS3 放大镜应用图标
  15. 《第一行代码 第二版》Android studio java开发学习笔记+源码
  16. Swaps in Permutation
  17. APM的3DR无线数传的安装
  18. 表达式计算器 java代码_Java实现简单的表达式计算器功能示例
  19. 给小学生科普计算机,科普知史识:计算机是我们的小助手(适用于小学生).ppt...
  20. 程序运行时报错NullPointerException(空指针)情况以及解决方法

热门文章

  1. RHCE 第十二天 搭建小松鼠服务squirrelmail
  2. 202301-第一周资讯
  3. 服务器怎么创建硬盘,超微主板怎么创建RAID磁盘阵列 服务器组建RAID0、RAID1图文教程...
  4. Windows Server 2016
  5. 实战|从0到1,用flink实现双11实时数据大屏
  6. 首款MeeGo系统上网本 华硕Eee PC X101H独家首测(1)
  7. 有一种高级的情商,叫“不抬杠”
  8. Windows7 64位开启和禁用驱动程序签名强制
  9. lunix学习日记 1
  10. 接口 401 提示 unauthorized