场景算法
随机分红包
import java.math.BigDecimal; import java.util.*; public class Main { static void hb(double total, int num) { double min = 0.01; double one = Math.random() + total * (1 - 0.8); BigDecimal one_bd = new BigDecimal(one); one = one_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); total = total - one; BigDecimal total_bd = new BigDecimal(total); total = total_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("第1个红包:" + one + ",余额为:" + total + "元"); for (int i = 2; i < num; i++) { double free_avg = (total - (num - i) * min) / (num - i); //让红包金额区间小些 double money = Math.random() * (free_avg - min) + min;// [min,free_avg) BigDecimal money_bd = new BigDecimal(money); money = money_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); total = total - money; total_bd = new BigDecimal(total); total = total_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("第" + i + "个红包:" + money + ",余额为:" + total + "元"); } System.out.println("第" + num + "个红包:" + total + ",余额为:0元"); } public static void main(String[] args) { hb(100, 10);// 金额,个数 } }
第1个红包:20.18,余额为:79.82元
第2个红包:2.75,余额为:77.07元
第3个红包:6.07,余额为:71.0元
第4个红包:9.37,余额为:61.63元
第5个红包:3.39,余额为:58.24元
第6个红包:8.17,余额为:50.07元
第7个红包:7.88,余额为:42.19元
第8个红包:19.76,余额为:22.43元
第9个红包:8.06,余额为:14.37元
第10个红包:14.37,余额为:0元
import java.math.BigDecimal; import java.util.*; public class Main { static void hb(double total, int num) { double min = 0.01; double one = Math.random() + total * (1 - 0.8); BigDecimal one_bd = new BigDecimal(one); one = one_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); total = total - one; BigDecimal total_bd = new BigDecimal(total); total = total_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("第1个红包:" + one + ",余额为:" + total + "元"); for (int i = 2; i < num; i++) { double free_total = (total - (num - i) * min); double money = Math.random() * (free_total - min) + min;// [min,free_avg) BigDecimal money_bd = new BigDecimal(money); money = money_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); total = total - money; total_bd = new BigDecimal(total); total = total_bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("第" + i + "个红包:" + money + ",余额为:" + total + "元"); } System.out.println("第" + num + "个红包:" + total + ",余额为:0元"); } public static void main(String[] args) { hb(100, 10);// 金额,个数 } }
第1个红包:20.53,余额为:79.47元
第2个红包:55.75,余额为:23.72元
第3个红包:10.82,余额为:12.9元
第4个红包:7.05,余额为:5.85元
第5个红包:2.51,余额为:3.34元
第6个红包:0.11,余额为:3.23元
第7个红包:3.19,余额为:0.04元
第8个红包:0.01,余额为:0.03元
第9个红包:0.01,余额为:0.02元
第10个红包:0.02,余额为:0元
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-03-29 Python中打开文件的方式(With open)
2020-03-29 Python模块——base64
2020-03-29 Flask 的 jsonify
2020-03-29 Flask request
2020-03-29 JSON 简介