ASP.NET如何实现微信抢红包

  介绍

小编给大家分享一下ASP。净如何实现微信抢红包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>正文

<强> 100块发30个红包

 ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包

<强> 50块发13个红包

 ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包

<强> 1块发10个红包

 ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP。净如何实现微信抢红包  ASP.NET如何实现微信抢红包

发红包需要满足以下几个条件

1。总金额不变
2。每个红包都必须有钱
3。尽量的均匀点,不然抢红包没什么意思了

<>强实现思路
1。首先要确定最小单位,这里是精确到分,我这里以int类型进行计算,得出的结果也全是int类型
2。数据均匀,这里以,1 & lt; n<(剩余金额/剩余红包数)* 2,这里防止一个红包抢走大量的钱,这里需要写个递归,去检查数据值是否过大,50元发13个红包的第3图,就是因为没有检查数据,导致钱不平均,这个可以根据自己的玩法去设置。
3。余数处理,当数据平均给20个红包,肯定跟总金额有所偏差,这时候我们就要多退少补,如果大于总金额,让红包金额多的去减少(总金额/总人数),如果还有剩余,就让第二多的去减少,直到补完这个空缺为止,反之亦然。
4。打乱顺序,细心的园友可能发现,红包是有顺序规律的,我们必须简单的写个函数去打乱它。,

演示///, & lt; summary>   ,///抢红包   ,///& lt;/summary>   ,///& lt; param  name=癿oney"祝辞& lt;/param>   ,///& lt; param  name=皀um"祝辞& lt;/param>   ,///& lt; returns> & lt;/returns>   ,public  List qhb (int 钱,,int  num)   ,{   int 才能;min =, 1;   int 才能;pjs =, money /, num;   List<才能;int>, list =, new  List ();   Random 才能;rnd =, new 随机();   for 才能;(int 小姐:=,0;,小姐:& lt;, num;,我+ +)   {才能   int 才能;max =,(时间/money  (num 神;我)),*,2;   int 才能;s =, rnd.Next(最小值,最大值);   时间=s 才能;checkmoney (s),最小值,最大值);   list.Add才能(年代);   -=money 才能;;   ,,}//前才能面数据都是合理的,结尾必须多退少补   时间=list 才能;清单(钱,,睡衣,,列表);   return 才能;列表;   以前,}

///, & lt; summary>
  ,///余数处理
  ,///& lt;/summary>
  ,///& lt; param  name=癿oney"祝辞& lt;/param>
  ,///& lt; param  name=發ist"祝辞& lt;/param>
  ,///& lt; returns> & lt;/returns>
  ,public  List清单(int 钱,,int 睡衣,,List,列表)
  ,{
  if 才能;(money  !=, 0)
  {才能
  if 才能;(money 祝辞,0)
  {才能
  
  ,,ListASP.NET如何实现微信抢红包