直接上代码

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红包平均分配,红包平均分配算法相关推荐

  1. 编写一个函数,模拟微信发红包的红包分配过程。函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10。程序输入:红包总金额和红包数量;程序输出:每个红包的金额。要求:

    题目 ‬‬编写一个函数,模拟微信发红包的红包分配过程.函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10.程序输入:红包总金额和红包数量:程序输出:每个红包的金 ...

  2. php 微信红包瓜分,PHP实现微信红包金额拆分试玩的算法示例

    本文介绍了PHP实现微信红包金额拆分试玩的算法示例,分享给大家,有兴趣的可以看一下: // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 public $b ...

  3. 统计学习方法第二十章作业:潜在狄利克雷分配 LDA 吉布斯抽样法算法 代码实现

    潜在狄利克雷分配 LDA 吉布斯抽样法算法 import numpy as np import jiebaclass LDA:def __init__(self,text_list,k):self.k ...

  4. 动态分区分配的“首次适应算法_kafka集群关于资源分配的手册

    一.本文要讲 如何结合业务敲定kafka的机器分配数目! 消费者分区分配策略 副本分配到broker上的算法: 二.正文 1:如何结合业务敲定kafka的机器分配数目! 原则一:需要遵循的前提是,单数 ...

  5. 【学习笔记】第三章——内存 I(交换技术、进程七状态模型、动态分区分配、动态分区算法)

    文章目录 一. 交换状态.进程七状态模型 二. 内存的分配方式 三. 动态分配算法 一. 交换状态.进程七状态模型 交换技术:内存空间紧张,把某些进程暂时换出外存.(进程在内存与磁盘间动态调度) 进程 ...

  6. python qq红包_python实现红包裂变算法

    本文实例介绍了python实现红包裂变算法,分享给大家供大家参考,具体内容如下 Python语言库函数 安装:pip install redpackets使用: import redpackets r ...

  7. java微信红包_Java模拟微信发红包(普通红包、拼手气红包)

    假设红包总额M元,分给N个人. 满足条件: 如果是普通红包,每个人获得的金额都一样: 如果是拼手气红包,则有所区别,但不能金额过于离谱,比如第一个获得的太多,以至于后来的人都几乎没得分. 注意点: 1 ...

  8. h5拼手气红包java_Java模拟微信发红包(普通红包、拼手气红包)

    假设红包总额M元,分给N个人. 满足条件: 如果是普通红包,每个人获得的金额都一样: 如果是拼手气红包,则有所区别,但不能金额过于离谱,比如第一个获得的太多,以至于后来的人都几乎没得分. 注意点: 1 ...

  9. 哪个更快:堆栈分配或堆分配

    这个问题听起来很基础,但这是我与另一位与我合作的开发人员进行的辩论. 我一直在小心翼翼地在可能的地方分配东西,而不是堆分配东西. 他在和我说话,看着我的肩膀,并评论说这是不必要的,因为它们是相同的表现 ...

最新文章

  1. Mybatis 工作总结 持续更新
  2. php中条件查询语句,thinkphp3.2框架中where条件查询用法总结
  3. python好吗-老男孩学习python好吗?
  4. PHP消息队列用法实例分析
  5. Python实现全民K歌歌曲下载
  6. 全球及中国煤层气开发产业运营规模与十四五战略决策建议报告2022版
  7. Python学习笔记:面向对象高级编程(完)
  8. Modelsim仿真流程
  9. 主成分分析具体解释_主成分分析-现在用您自己的术语解释
  10. Android HTTP POST上传
  11. matlab 读取excel一列,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
  12. Go2Shell 已无法使用
  13. 一季度中国游戏PC销量增长14%,英特尔发布H45点燃玩家热情
  14. python自动化测试报告 之 allure_Pytest+ Allure + Jenkins 自动化测试报告
  15. TechWeb:转载合作须知!
  16. 大数据爬虫的一些小目标
  17. C程序~一元二次方程求解
  18. 对PX4参数THR_MDL_FAC的理解
  19. win xp使用技巧
  20. 企业微信客户端开启调试模式

热门文章

  1. 【白皮书分享】创新中国2030:释放技术红利,解锁增长动能-埃森哲.pdf(附下载链接)...
  2. 卷积神经网络——第一周 卷积神经网络基础——第一部分
  3. leetcode力扣338. 比特位计数
  4. 王道机试指南读后总结-2
  5. KDD 2021 | 谷歌DHE:不使用embedding table的类别型特征embedding
  6. 局域网通讯工具_五大核心开启工业通讯创新之门——西门子工业网络专家计划打造最强行业生态...
  7. 悬浮球不用权限_Android 实现无需权限的悬浮球效果,可适配至Android 10
  8. c语言strlren函数的原代码,VB常用函数
  9. Leetcode每日一题:904.fruit-into-baskets(水果成篮)
  10. 感知机算法python实现