欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java一个简单的红包生成算法

时间:2021-07-18 08:27:11|栏目:JAVA代码|点击:

一个简单的红包生成算法,代码如下:

/**
 * 红包
 * @param n
 * @param money 单位:分
 * @return
 **/
public static double[] redPacket(int n, double money) {
    // 红包结果
    double[] result = new double[n];
    // 随机数
    double[] randNum = new double[n];
    // 随机总数
    double randSum = 0;
    // 保证每个人都分到一分钱,扣除后分配
    double redSum = money - n;
    // 先随机,生成指定个数的随机数
    for (int i = 0; i < randNum.length; i++) {
      randNum[i] = Math.random() * redSum;
      randSum += randNum[i];
    }
    // 重新分配
    double left = redSum;
    // 设置随机红包结果
    for (int i = 0; i < result.length-1; i++) {
      // 取整
      result[i] = Math.round(randNum[i] / randSum * redSum);
      left -= result[i];
      // 每人至少一分钱
      result[i] = (result[i] + 1) * 1.0 / 100;
    }
    // 设置最后一个红包
    result[n-1] = (left + 1) * 1.0 / 100;
    return result;
 }

算法很简单,仅供参考,有考虑不到之处,欢迎指正!

总结

上一篇:hadoop的hdfs文件操作实现上传文件到hdfs

栏    目:JAVA代码

下一篇:使用纯Java实现一个WebSSH项目的示例代码

本文标题:Java一个简单的红包生成算法

本文地址:http://www.codeinn.net/misctech/158901.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有