新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
ASP.NET代碼如何實現(xiàn)微信搶紅包-創(chuàng)新互聯(lián)
這篇文章主要介紹了ASP.NET代碼如何實現(xiàn)微信搶紅包,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體內容如下
正文
100塊發(fā)30個紅包
50塊發(fā)13個紅包
1塊發(fā)10個紅包
發(fā)紅包需要滿足以下幾個條件
1.總金額不變
2.每個紅包都必須有錢
3.盡量的均勻點,不然搶紅包沒什么意思了
實現(xiàn)思路1.首先要確定最小單位,這里是精確到分,我這里以int類型進行計算,得出的結果也全是int類型
2.數(shù)據均勻,這里以 1
4.打亂順序,細心的園友可能發(fā)現(xiàn),紅包是有順序規(guī)律的,我們必須簡單的寫個function去打亂它.
demo
////// 搶紅包 /// /// /// ///public List qhb(int money, int num) { int min = 1; int pjs = money / num; List list = new List (); 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ù)據都是合理的,結尾必須多退少補 list = checklist(money, pjs, list); return list; }
////// 余數(shù)處理 /// /// /// ///public List checklist(int money, int pjs, List list) { if (money != 0) { if (money > 0) { List 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 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; }
////// 冒泡排序 /// /// /// ///public List maopao(List 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 < list.Count; i++) { int temp = list[i]; int j = rnd.Next(0, list.Count-1); list[i] = list[j]; list[j] = temp; } return list; }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“ASP.NET代碼如何實現(xiàn)微信搶紅包”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網站建設公司,,關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
文章名稱:ASP.NET代碼如何實現(xiàn)微信搶紅包-創(chuàng)新互聯(lián)
分享網址:http://www.dlmjj.cn/article/hjood.html