关于随机数Random的
还有0人有此问题
发表在Java视频课程答疑 2017-06-13
是否精华
版块置顶:

 

 public static void main(String[] args) {
  System.out.println("---微信抢红包---");
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入红包总金额");
  double total = sc.nextDouble();
  System.out.println("请输入红包个数");
  int bagCout = sc.nextInt();
  double min = 0.01;
  Random c = new Random();
  for (int i = 1; i < bagCout; i++) {
   
   double max = total - (bagCout - i) * min;
   double bound=max-min;
   double safe = (double) (c.nextInt((int) (bound * 100)) / 100);
   double money = safe + min;
   total = total - money;
   
   System.out.println("第" + i + "个红包" + String.format("%.2f", money)+"元");
  }
  System.out.println("第" + bagCout + "个红包" + String.format("%.2f", total)+"元");
  sc.close();
 }

}

上面是我抄视频的代码,

下图是我运行的其中一个结果

2222.png

我发现后面的小数点基本都是一样的,只有整数部分有点变化

分享到:
精彩评论 1
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-06-13
沙发

这个主要是根据公式产生的结果。因为微信没有公布微信红包的真实算法,所以这个例子使用的公式也是网上流传的一种,其结果的确没能很好地模仿出微信红包的效果。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照