当前位置: 首页 > news >正文

国内好用的五款开源建站系统百度关键词搜索查询

国内好用的五款开源建站系统,百度关键词搜索查询,深圳人才网站建设,wordpress仿站实战教程红包算法 首先,如果红包只有一个,本轮直接使用全部金额,确保红包发完。 然后, 计算出本次红包最少要领取多少,才能保证红包领完,即本轮下水位; 本轮最多领取多少,才能保证每个人都…

红包算法

首先,如果红包只有一个,本轮直接使用全部金额,确保红包发完。

然后,
计算出本次红包最少要领取多少,才能保证红包领完,即本轮下水位;
本轮最多领取多少,才能保证每个人都领到,即本轮上水位。

主要方式如下:
计算本次红包金额下水位:假设本次领到最小值1分,那接下来每次都领到200元红包能领完,那下水位为1分;如果不能领完,那按接下来每次都领200元,剩下的本轮应全部领走,是本轮的下水位。

计算本轮红包上水位:假设本轮领200元,剩下的钱还足够接下来每轮领1分钱,那本轮上水位为200元;如果已经不够领,那按接下来其他领1分,计算本轮的上水位。

为了使红包金额不要太悬殊,使用红包均值调整上水位。如果上水位金额大于两倍红包均值,那么使用两倍红包均值作为上水位。换句话说,每一轮抢到的红包金额,最高为两倍剩下红包的均值。

最后,获取随机数并用上水位取余,如果结果比下水位还小,则直接使用下水位,否则使用随机金额为本轮拆到金额。

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;public class RandomRedPocket implements RedPocket {BigDecimal avgAmount;private BigDecimal totalAmount;private BigDecimal lowestAmount;private Integer remainNum;public RandomRedPocket(BigDecimal totalAmount, int num) {this.totalAmount = totalAmount;this.remainNum = num;this.avgAmount = totalAmount.divide(new BigDecimal(num), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(2));this.lowestAmount = BigDecimal.valueOf(0.01);}@Overridepublic BigDecimal getAmount() {if (remainNum == 1) {return totalAmount;} else {BigDecimal lowerBound = calculateLowerBound();BigDecimal upperBound = calculateUpperBound();if (upperBound.compareTo(avgAmount) > 0) {upperBound = avgAmount;}remainNum = remainNum - 1;BigDecimal randomAmount = genRandomMoney(lowerBound, upperBound);totalAmount = totalAmount.subtract(randomAmount);return randomAmount;}}private BigDecimal calculateUpperBound() {//后面每人获取最低红包,需要剩下多少钱BigDecimal multiplied = lowestAmount.multiply(BigDecimal.valueOf(remainNum - 1));BigDecimal upperBound = totalAmount.subtract(multiplied);return upperBound;}//计算本次红包,最低领取多少金额,才能保证红包领完//此处可进一步完善private BigDecimal calculateLowerBound() {return BigDecimal.valueOf(0.01);}@Overridepublic boolean isValid(BigDecimal totalAmount, BigDecimal thisAmount) {return false;}@Overridepublic BigDecimal genRandomMoney(BigDecimal lowerBound, BigDecimal upperBound) {Random random = new Random();double randomItem = random.nextDouble();BigDecimal decimal = upperBound.subtract(lowerBound).multiply(new BigDecimal(randomItem)).add(lowerBound);decimal = decimal.setScale(2, RoundingMode.HALF_UP);return decimal;}
}
http://www.tj-hxxt.cn/news/95640.html

相关文章:

  • 网站建设项目分析网络销售员每天做什么
  • 网站后台如何添加代码网络推广员是什么工作
  • 三五互联网站管理登录地址是多少中国营销型网站有哪些
  • 注册有限公司需要多少钱北京网站优化平台
  • 做女装的网站sem公司
  • 产品展示网站 模板开发一个平台需要多少钱
  • 做fitting的网站宁德市人口
  • 用别人公司域名做网站竞价系统
  • 为什么我自己做的网站搜索不到软文推广广告
  • 怎么做淘宝卷网站一周热点新闻
  • 做返利网站能赚钱的怎么免费做网站
  • 网站优化价格中国旺旺(00151) 股吧
  • 网页设计与网站建设第03章在线测试优书网首页
  • 济宁城乡住房建设网站seo标签怎么优化
  • 建设网站的不足免费制作链接
  • 美食网站开发的目的和意义做一套二级域名网站怎么做
  • 推广公司业务话术亚马逊seo关键词优化软件
  • 武汉制作网站的公司杭州百家号优化
  • 南充网站建设价格金华网站建设
  • 织梦如何做中英文版的网站瑞金网络推广
  • 帮别人建网站赚钱吗营销型网站seo
  • 顺德大良哪家做网站好网络营销模式有哪些
  • 重庆企业网站制作公司微博今日热搜榜
  • 要网站开发费用短信画质优化app下载
  • 手机网站横竖屏关于seo的行业岗位有哪些
  • 做特殊原产地证的网站有链接的网站
  • 建站服务器制作公司官网多少钱
  • wordpress做淘宝客网站百度推广助手下载
  • 查公司的口碑和评价的网站百度推广价格价目表
  • 西安有哪些网站建设外包公司百度app广告