這篇文章主要為大家相許介紹了輕松實(shí)現(xiàn)微信搶紅包的ASP.NET代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
群里都在玩搶紅包,搶了再發(fā),發(fā)了再搶?zhuān)?jiǎn)直是無(wú)聊,程序員感興趣是的如何實(shí)現(xiàn),這里簡(jiǎn)單說(shuō)說(shuō)實(shí)現(xiàn)思路,附上dome,代碼有點(diǎn)low,好在是實(shí)現(xiàn)了,具體內(nèi)容如下?
正文
100塊發(fā)30個(gè)紅包
50塊發(fā)13個(gè)紅包
1塊發(fā)10個(gè)紅包
發(fā)紅包需要滿(mǎn)足以下幾個(gè)條件
1.總金額不變
2.每個(gè)紅包都必須有錢(qián)
3.盡量的均勻點(diǎn),不然搶紅包沒(méi)什么意思了?
實(shí)現(xiàn)思路1.首先要確定最小單位,這里是精確到分,我這里以int類(lèi)型進(jìn)行計(jì)算,得出的結(jié)果也全是int類(lèi)型
2.數(shù)據(jù)均勻,這里以? 1
4.打亂順序,細(xì)心的園友可能發(fā)現(xiàn),紅包是有順序規(guī)律的,我們必須簡(jiǎn)單的寫(xiě)個(gè)function去打亂它.
demo
/// <summary> ?///?搶紅包 ?///?</summary> ?///?<param name="money"></param> ?///?<param name="num"></param> ?///?<returns></returns> ?public?List<int>?qhb(int?money,?int?num) ?{ ??int?min?=?1; ??int?pjs?=?money?/?num; ??List<int>?list?=?new?List<int>(); ??Random?rnd?=?new?Random(); ??for?(int?i?=?0;?i?< num; i++) { int max = (money / (num - i)) * 2; int s = rnd.Next(min, max); s = checkmoney(s, min, max); list.Add(s); money -= s; } //前面數(shù)據(jù)都是合理的,結(jié)尾必須多退少補(bǔ) list = checklist(money, pjs, list); return list; }
/// <summary> ?///?余數(shù)處理 ?///?</summary> ?///?<param name="money"></param> ?///?<param name="list"></param> ?///?<returns></returns> ?public?List<int>?checklist(int?money,?int?pjs,?List<int>?list) ?{ ??if?(money?!=?0) ??{ ??if?(money?>?0) ??{ ???List<int>?list_order?=?maopao(list); ???//給最小 ???if?(money?/?pjs?==?0) ???{??? ???list_order[0]?+=?money; ???} ???else ???{ ???for?(int?i?=?0;?i?<?money?/?pjs?+?1;?i++) ???{ ????if?(i?==?money?/?pjs) ????{ ????list_order[i]?+=?(money?-?(money?/?pjs)?*?pjs); ????} ????else ????{ ????list_order[i]?+=?pjs; ????} ???} ???} ???return?list_order; ??} ??else ??{ ???List<int>?list_order?=?maopao(list,"desc"); ???//給最大 ???if?(money?/?pjs?==?0) ???{ ???list_order[0]?+=?money; ???} ???else ???{ ???for?(int?i?=?0;?i?< -(money / pjs) + 1; i++) { if (i == -(money / pjs)) { list_order[i] += (money - (money / pjs) * pjs); } else { list_order[i] -= pjs; } } } return list_order; } } return list; }
/// <summary> ??///?冒泡排序 ??///?</summary> ??///?<param name="list"></param> ??///?<param name="order"></param> ??///?<returns></returns> ??public?List<int>?maopao(List<int>?list,string?order?=?"asc") ??{ ??if?(order?!=?"asc") ??{ ???for?(int?i?=?0;?i?< list.Count; i++) { for (int j = 0; j < list.Count - i - 1; j++) { if (list[j + 1] >?list[j]) ???{ ????int?temp?=?list[j]; ????list[j]?=?list[j?+?1]; ????list[j?+?1]?=?temp; ? ????} ???} ???} ??} ??else? ??{ ???for?(int?i?=?0;?i?< list.Count; i++) { for (int j = 0; j < list.Count-i-1;j++) { if (list[j+1] < list[j]) { int temp = list[j]; list[j] = list[j+1]; list[j+1] = temp; } } } } return list; }
///?///?打亂順序 ??///? ??///? ??///??public?List ?suiji(List ?list)? ??{ ??Random?rnd?=?new?Random(); ??for?(int?i?=?0;?i? 以上是ASP.NET代碼輕松實(shí)現(xiàn)微信搶紅包的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)