介绍
小编给大家分享一下ASP。净如何实现微信抢红包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强>正文
强>
<强> 100块发30个红包强>
<强> 50块发13个红包强>
<强> 1块发10个红包强>
发红包需要满足以下几个条件
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 Listqhb (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) {才能 ,,List ASP.NET如何实现微信抢红包