php红包平均分配,红包平均分配算法
直接上代码
import java.util.Iterator;
import java.util.TreeSet;
public class Hongbao {
private final int[] moneyList;
private final int number;
private final int totalMoney;
private int cur;
public Hongbao(int number, int totalMoney) {
if (number > totalMoney)
throw new IllegalArgumentException("number <= totalMoney");
this.number = number;
this.totalMoney = totalMoney;
moneyList = new int[number + 1];
TreeSet moneySet = new TreeSet<>();
initial(moneySet);
int i = -1;
Iterator iter = moneySet.iterator();
while (iter.hasNext()) {
moneyList[++i] = iter.next();
}
cur = 0;
}
protected void initial(TreeSet moneySet) {
moneySet.add(0);
moneySet.add(totalMoney);
for (int i = 1; i < number; ++i) {
int tempMoney = rand(totalMoney);
while (moneySet.contains(tempMoney)) {
++tempMoney;
tempMoney %= totalMoney;
}
moneySet.add(tempMoney);
}
}
protected int rand(int n) {
return (int)(Math.random() * (n - 1) + 1);
}
public int getOne() {
return moneyList[++cur] - moneyList[cur - 1];
}
}测试代码
public static void main(String[] args) {
int[] arr = new int[20];
for (int i = 0; i < 20; i++)
arr[i] = 0;
for (int j = 0; j < 4000; ++j) {
Hongbao h = new Hongbao(20, 1000);
for (int i = 0; i < 20; ++i)
arr[i] += h.getOne();
}
for (int i = 0; i < 20; i++)
System.out.println(arr[i]);
}我测试的结果
198741
198305
197537
195746
196592
198304
202119
198655
200099
200290
198616
205446
198713
200420
203392
199065
205758
200732
198460
203010
php红包平均分配,红包平均分配算法相关推荐
- 编写一个函数,模拟微信发红包的红包分配过程。函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10。程序输入:红包总金额和红包数量;程序输出:每个红包的金额。要求:
题目 编写一个函数,模拟微信发红包的红包分配过程.函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10.程序输入:红包总金额和红包数量:程序输出:每个红包的金 ...
- php 微信红包瓜分,PHP实现微信红包金额拆分试玩的算法示例
本文介绍了PHP实现微信红包金额拆分试玩的算法示例,分享给大家,有兴趣的可以看一下: // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 public $b ...
- 统计学习方法第二十章作业:潜在狄利克雷分配 LDA 吉布斯抽样法算法 代码实现
潜在狄利克雷分配 LDA 吉布斯抽样法算法 import numpy as np import jiebaclass LDA:def __init__(self,text_list,k):self.k ...
- 动态分区分配的“首次适应算法_kafka集群关于资源分配的手册
一.本文要讲 如何结合业务敲定kafka的机器分配数目! 消费者分区分配策略 副本分配到broker上的算法: 二.正文 1:如何结合业务敲定kafka的机器分配数目! 原则一:需要遵循的前提是,单数 ...
- 【学习笔记】第三章——内存 I(交换技术、进程七状态模型、动态分区分配、动态分区算法)
文章目录 一. 交换状态.进程七状态模型 二. 内存的分配方式 三. 动态分配算法 一. 交换状态.进程七状态模型 交换技术:内存空间紧张,把某些进程暂时换出外存.(进程在内存与磁盘间动态调度) 进程 ...
- python qq红包_python实现红包裂变算法
本文实例介绍了python实现红包裂变算法,分享给大家供大家参考,具体内容如下 Python语言库函数 安装:pip install redpackets使用: import redpackets r ...
- java微信红包_Java模拟微信发红包(普通红包、拼手气红包)
假设红包总额M元,分给N个人. 满足条件: 如果是普通红包,每个人获得的金额都一样: 如果是拼手气红包,则有所区别,但不能金额过于离谱,比如第一个获得的太多,以至于后来的人都几乎没得分. 注意点: 1 ...
- h5拼手气红包java_Java模拟微信发红包(普通红包、拼手气红包)
假设红包总额M元,分给N个人. 满足条件: 如果是普通红包,每个人获得的金额都一样: 如果是拼手气红包,则有所区别,但不能金额过于离谱,比如第一个获得的太多,以至于后来的人都几乎没得分. 注意点: 1 ...
- 哪个更快:堆栈分配或堆分配
这个问题听起来很基础,但这是我与另一位与我合作的开发人员进行的辩论. 我一直在小心翼翼地在可能的地方分配东西,而不是堆分配东西. 他在和我说话,看着我的肩膀,并评论说这是不必要的,因为它们是相同的表现 ...
最新文章
- Mybatis 工作总结 持续更新
- php中条件查询语句,thinkphp3.2框架中where条件查询用法总结
- python好吗-老男孩学习python好吗?
- PHP消息队列用法实例分析
- Python实现全民K歌歌曲下载
- 全球及中国煤层气开发产业运营规模与十四五战略决策建议报告2022版
- Python学习笔记:面向对象高级编程(完)
- Modelsim仿真流程
- 主成分分析具体解释_主成分分析-现在用您自己的术语解释
- Android HTTP POST上传
- matlab 读取excel一列,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
- Go2Shell 已无法使用
- 一季度中国游戏PC销量增长14%,英特尔发布H45点燃玩家热情
- python自动化测试报告 之 allure_Pytest+ Allure + Jenkins 自动化测试报告
- TechWeb:转载合作须知!
- 大数据爬虫的一些小目标
- C程序~一元二次方程求解
- 对PX4参数THR_MDL_FAC的理解
- win xp使用技巧
- 企业微信客户端开启调试模式
热门文章
- 【白皮书分享】创新中国2030:释放技术红利,解锁增长动能-埃森哲.pdf(附下载链接)...
- 卷积神经网络——第一周 卷积神经网络基础——第一部分
- leetcode力扣338. 比特位计数
- 王道机试指南读后总结-2
- KDD 2021 | 谷歌DHE:不使用embedding table的类别型特征embedding
- 局域网通讯工具_五大核心开启工业通讯创新之门——西门子工业网络专家计划打造最强行业生态...
- 悬浮球不用权限_Android 实现无需权限的悬浮球效果,可适配至Android 10
- c语言strlren函数的原代码,VB常用函数
- Leetcode每日一题:904.fruit-into-baskets(水果成篮)
- 感知机算法python实现