這篇文章主要為大家相許介紹了輕松實現(xiàn)微信搶紅包的ASP.NET代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
群里都在玩搶紅包,搶了再發(fā),發(fā)了再搶,簡直是無聊,程序員感興趣是的如何實現(xiàn),這里簡單說說實現(xiàn)思路,附上dome,代碼有點low,好在是實現(xiàn)了,具體內(nèi)容如下?
正文
100塊發(fā)30個紅包
50塊發(fā)13個紅包
1塊發(fā)10個紅包
發(fā)紅包需要滿足以下幾個條件
1.總金額不變
2.每個紅包都必須有錢
3.盡量的均勻點,不然搶紅包沒什么意思了?
實現(xiàn)思路1.首先要確定最小單位,這里是精確到分,我這里以int類型進行計算,得出的結(jié)果也全是int類型
2.數(shù)據(jù)均勻,這里以? 1
4.打亂順序,細(xì)心的園友可能發(fā)現(xiàn),紅包是有順序規(guī)律的,我們必須簡單的寫個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é)尾必須多退少補 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? Atas ialah kandungan terperinci ASP.NET代碼輕松實現(xiàn)微信搶紅包. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)