精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java實(shí)現(xiàn)四種微信搶紅包算法,拿走不謝

開發(fā) 后端 算法
14年微信推出紅包功能以后,很多公司開始上自己的紅包功能,到現(xiàn)在為止仍然有很多紅包開發(fā)的需求,實(shí)現(xiàn)搶紅包算法也是面試常考題。

概述

14年微信推出紅包功能以后,很多公司開始上自己的紅包功能,到現(xiàn)在為止仍然有很多紅包開發(fā)的需求,實(shí)現(xiàn)搶紅包算法也是面試常考題。

[[435386]]

要求:

  1. 保證每個(gè)紅包最少分得0.01元
  2. 保證每個(gè)紅包金額概率盡量均衡
  3. 所有紅包累計(jì)金額等于紅包總金額

本文提供4中紅包算法及Java代碼實(shí)現(xiàn)demo,僅供參考。其中每種算法測試場景為:0.1元10個(gè)包,1元10個(gè)包,100元10個(gè)包,1000元10個(gè)包。

一、剩余金額隨機(jī)法

以10元10個(gè)紅包為例,去除每個(gè)紅包的最小金額后,紅包剩余9.9元;

  1. 第一個(gè)紅包在[0,9.9]范圍隨機(jī),假設(shè)隨機(jī)得1元,則第一個(gè)紅包金額為1.1元,紅包剩余8.9元。
  2. 第二個(gè)紅包在[0,8.9]范圍隨機(jī),假設(shè)隨機(jī)得1.5元,則第二個(gè)紅包金額為1.6元,紅包剩余7.4元。
  3. 第三個(gè)紅包在[0,7.4]范圍隨機(jī),假設(shè)隨機(jī)得0.5元,則第三個(gè)紅包金額為0.6元,紅包剩余6.9元。
  4. 以此類推。 
  1. public static void main(String[] args) { 
  2.     //初始化測試場景 
  3.     BigDecimal[][] rrr = { 
  4.             {new BigDecimal("0.1"), new BigDecimal("10")}, 
  5.             {new BigDecimal("1"), new BigDecimal("10")}, 
  6.             {new BigDecimal("100"), new BigDecimal("10")}, 
  7.             {new BigDecimal("1000"), new BigDecimal("10")} 
  8.     }; 
  9.     BigDecimal min = new BigDecimal("0.01"); 
  10.     //測試個(gè)場景 
  11.     for (BigDecimal[] decimals : rrr) { 
  12.         final BigDecimal amount = decimals[0]; 
  13.         final BigDecimal num = decimals[1]; 
  14.         System.out.println(amount + "元" + num + "個(gè)人搶======================================================="); 
  15.         test1(amount, min, num); 
  16.     } 
  17.  
  18. private static void test1(BigDecimal amount, BigDecimal min, BigDecimal num) { 
  19.     BigDecimal remain = amount.subtract(min.multiply(num)); 
  20.     final Random random = new Random(); 
  21.     final BigDecimal hundred = new BigDecimal("100"); 
  22.     BigDecimal sum = BigDecimal.ZERO; 
  23.     BigDecimal redpeck; 
  24.     for (int i = 0; i < num.intValue(); i++) { 
  25.         final int nextInt = random.nextInt(100); 
  26.         if (i == num.intValue() - 1) { 
  27.             redpeck = remain; 
  28.         } else { 
  29.             redpeck = new BigDecimal(nextInt).multiply(remain).divide(hundred, 2, RoundingMode.FLOOR); 
  30.         } 
  31.         if (remain.compareTo(redpeck) > 0) { 
  32.             remain = remain.subtract(redpeck); 
  33.         } else { 
  34.             remain = BigDecimal.ZERO; 
  35.         } 
  36.         sum = sum.add(min.add(redpeck)); 
  37.         System.out.println("第" + (i + 1) + "個(gè)人搶到紅包金額為:" + min.add(redpeck)); 
  38.     } 
  39.     System.out.println("校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:" + (amount.compareTo(sum) == 0)); 

測試結(jié)果如下:可以看出此算法有明顯缺陷,即:先領(lǐng)取的紅包金額較大,后領(lǐng)取的紅包金額較小,這就使得搶紅包變的不公平。 

  1. 0.1元10個(gè)人搶======================================================= 
  2. 第1個(gè)人搶到紅包金額為:0.01 
  3. 第2個(gè)人搶到紅包金額為:0.01 
  4. 第3個(gè)人搶到紅包金額為:0.01 
  5. 第4個(gè)人搶到紅包金額為:0.01 
  6. 第5個(gè)人搶到紅包金額為:0.01 
  7. 第6個(gè)人搶到紅包金額為:0.01 
  8. 第7個(gè)人搶到紅包金額為:0.01 
  9. 第8個(gè)人搶到紅包金額為:0.01 
  10. 第9個(gè)人搶到紅包金額為:0.01 
  11. 第10個(gè)人搶到紅包金額為:0.01 
  12. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  13. 1元10個(gè)人搶======================================================= 
  14. 第1個(gè)人搶到紅包金額為:0.09 
  15. 第2個(gè)人搶到紅包金額為:0.28 
  16. 第3個(gè)人搶到紅包金額為:0.19 
  17. 第4個(gè)人搶到紅包金額為:0.20 
  18. 第5個(gè)人搶到紅包金額為:0.15 
  19. 第6個(gè)人搶到紅包金額為:0.02 
  20. 第7個(gè)人搶到紅包金額為:0.03 
  21. 第8個(gè)人搶到紅包金額為:0.01 
  22. 第9個(gè)人搶到紅包金額為:0.01 
  23. 第10個(gè)人搶到紅包金額為:0.02 
  24. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  25. 100元10個(gè)人搶======================================================= 
  26. 第1個(gè)人搶到紅包金額為:19.99 
  27. 第2個(gè)人搶到紅包金額為:29.58 
  28. 第3個(gè)人搶到紅包金額為:38.27 
  29. 第4個(gè)人搶到紅包金額為:11.85 
  30. 第5個(gè)人搶到紅包金額為:0.11 
  31. 第6個(gè)人搶到紅包金額為:0.13 
  32. 第7個(gè)人搶到紅包金額為:0.01 
  33. 第8個(gè)人搶到紅包金額為:0.01 
  34. 第9個(gè)人搶到紅包金額為:0.03 
  35. 第10個(gè)人搶到紅包金額為:0.02 
  36. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  37. 1000元10個(gè)人搶======================================================= 
  38. 第1個(gè)人搶到紅包金額為:60.00 
  39. 第2個(gè)人搶到紅包金額為:695.54 
  40. 第3個(gè)人搶到紅包金額為:229.72 
  41. 第4個(gè)人搶到紅包金額為:8.95 
  42. 第5個(gè)人搶到紅包金額為:0.29 
  43. 第6個(gè)人搶到紅包金額為:4.64 
  44. 第7個(gè)人搶到紅包金額為:0.01 
  45. 第8個(gè)人搶到紅包金額為:0.69 
  46. 第9個(gè)人搶到紅包金額為:0.12 
  47. 第10個(gè)人搶到紅包金額為:0.04 
  48. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 

二、二倍均值法(微信紅包采用此法)

還是以10元10個(gè)紅包為例,去除每個(gè)紅包的最小金額后,紅包剩余9.9元,二倍均值計(jì)算公式:2 * 剩余金額/剩余紅包數(shù)

  1. 第一個(gè)紅包在[0,1.98]范圍隨機(jī),假設(shè)隨機(jī)得1.9,則第一個(gè)紅包金額為2.0,紅包剩余8元。
  2. 第二個(gè)紅包在[0,2]范圍隨機(jī),假設(shè)隨機(jī)的1元,則第二個(gè)紅包金額為1.1元,紅包剩余7元。
  3. 第三個(gè)紅包在[0,2]范圍隨機(jī),假設(shè)隨機(jī)的0.5元,則第三個(gè)紅包金額為0.6元,紅包剩余5.5元。
  4. 以此類推。 
  1. public static void main(String[] args) { 
  2.     //初始化測試場景 
  3.     BigDecimal[][] rrr = { 
  4.             {new BigDecimal("0.1"), new BigDecimal("10")}, 
  5.             {new BigDecimal("1"), new BigDecimal("10")}, 
  6.             {new BigDecimal("100"), new BigDecimal("10")}, 
  7.             {new BigDecimal("1000"), new BigDecimal("10")} 
  8.     }; 
  9.     BigDecimal min = new BigDecimal("0.01"); 
  10.     //測試個(gè)場景 
  11.     for (BigDecimal[] decimals : rrr) { 
  12.         final BigDecimal amount = decimals[0]; 
  13.         final BigDecimal num = decimals[1]; 
  14.         System.out.println(amount + "元" + num + "個(gè)人搶======================================================="); 
  15.         test2(amount, min, num); 
  16.     } 
  17.  
  18.  
  19. private static void test2(BigDecimal amount,BigDecimal min ,BigDecimal num){ 
  20.     BigDecimal remain = amount.subtract(min.multiply(num)); 
  21.     final Random random = new Random(); 
  22.     final BigDecimal hundred = new BigDecimal("100"); 
  23.     final BigDecimal two = new BigDecimal("2"); 
  24.     BigDecimal sum = BigDecimal.ZERO; 
  25.     BigDecimal redpeck; 
  26.     for (int i = 0; i < num.intValue(); i++) { 
  27.         final int nextInt = random.nextInt(100); 
  28.         if(i == num.intValue() -1){ 
  29.             redpeck = remain; 
  30.         }else
  31.             redpeck = new BigDecimal(nextInt).multiply(remain.multiply(two).divide(num.subtract(new BigDecimal(i)),2,RoundingMode.CEILING)).divide(hundred,2, RoundingMode.FLOOR); 
  32.         } 
  33.         if(remain.compareTo(redpeck) > 0){ 
  34.             remain = remain.subtract(redpeck); 
  35.         }else
  36.             remain = BigDecimal.ZERO; 
  37.         } 
  38.         sum = sum.add(min.add(redpeck)); 
  39.         System.out.println("第"+(i+1)+"個(gè)人搶到紅包金額為:"+min.add(redpeck)); 
  40.     } 
  41.     System.out.println("校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:"+amount.compareTo(sum)); 

測試結(jié)果如下:此算法很好的保證了搶紅包幾率大致均等。 

  1. 0.1元10個(gè)人搶======================================================= 
  2. 第1個(gè)人搶到紅包金額為:0.01 
  3. 第2個(gè)人搶到紅包金額為:0.01 
  4. 第3個(gè)人搶到紅包金額為:0.01 
  5. 第4個(gè)人搶到紅包金額為:0.01 
  6. 第5個(gè)人搶到紅包金額為:0.01 
  7. 第6個(gè)人搶到紅包金額為:0.01 
  8. 第7個(gè)人搶到紅包金額為:0.01 
  9. 第8個(gè)人搶到紅包金額為:0.01 
  10. 第9個(gè)人搶到紅包金額為:0.01 
  11. 第10個(gè)人搶到紅包金額為:0.01 
  12. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  13. 100元10個(gè)人搶======================================================= 
  14. 第1個(gè)人搶到紅包金額為:6.20 
  15. 第2個(gè)人搶到紅包金額為:7.09 
  16. 第3個(gè)人搶到紅包金額為:10.62 
  17. 第4個(gè)人搶到紅包金額為:18.68 
  18. 第5個(gè)人搶到紅包金額為:18.74 
  19. 第6個(gè)人搶到紅包金額為:2.32 
  20. 第7個(gè)人搶到紅包金額為:15.44 
  21. 第8個(gè)人搶到紅包金額為:5.43 
  22. 第9個(gè)人搶到紅包金額為:15.16 
  23. 第10個(gè)人搶到紅包金額為:0.32 
  24. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  25. 1元10個(gè)人搶======================================================= 
  26. 第1個(gè)人搶到紅包金額為:0.08 
  27. 第2個(gè)人搶到紅包金額為:0.05 
  28. 第3個(gè)人搶到紅包金額為:0.17 
  29. 第4個(gè)人搶到紅包金額為:0.17 
  30. 第5個(gè)人搶到紅包金額為:0.08 
  31. 第6個(gè)人搶到紅包金額為:0.06 
  32. 第7個(gè)人搶到紅包金額為:0.18 
  33. 第8個(gè)人搶到紅包金額為:0.10 
  34. 第9個(gè)人搶到紅包金額為:0.02 
  35. 第10個(gè)人搶到紅包金額為:0.09 
  36. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  37. 1000元10個(gè)人搶======================================================= 
  38. 第1個(gè)人搶到紅包金額為:125.99 
  39. 第2個(gè)人搶到紅包金額為:165.08 
  40. 第3個(gè)人搶到紅包金額為:31.90 
  41. 第4個(gè)人搶到紅包金額為:94.78 
  42. 第5個(gè)人搶到紅包金額為:137.79 
  43. 第6個(gè)人搶到紅包金額為:88.89 
  44. 第7個(gè)人搶到紅包金額為:156.44 
  45. 第8個(gè)人搶到紅包金額為:7.97 
  46. 第9個(gè)人搶到紅包金額為:151.01 
  47. 第10個(gè)人搶到紅包金額為:40.15 
  48. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 

三、整體隨機(jī)法

還是以10元10個(gè)紅包為例,隨機(jī)10個(gè)數(shù),紅包金額公式為:紅包總額 * 隨機(jī)數(shù)/隨機(jī)數(shù)總和,假設(shè)10個(gè)隨機(jī)數(shù)為[5,9,8,7,6,5,4,3,2,1],10個(gè)隨機(jī)數(shù)總和為50,

  1. 第一個(gè)紅包10*5/50,得1元。
  2. 第二個(gè)紅包10*9/50,得1.8元。
  3. 第三個(gè)紅包10*8/50,得1.6元。
  4. 以此類推。 
  1. public static void main(String[] args) { 
  2.     //初始化測試場景 
  3.     BigDecimal[][] rrr = { 
  4.             {new BigDecimal("0.1"), new BigDecimal("10")}, 
  5.             {new BigDecimal("1"), new BigDecimal("10")}, 
  6.             {new BigDecimal("100"), new BigDecimal("10")}, 
  7.             {new BigDecimal("1000"), new BigDecimal("10")} 
  8.     }; 
  9.     BigDecimal min = new BigDecimal("0.01"); 
  10.     //測試個(gè)場景 
  11.     for (BigDecimal[] decimals : rrr) { 
  12.         final BigDecimal amount = decimals[0]; 
  13.         final BigDecimal num = decimals[1]; 
  14.         System.out.println(amount + "元" + num + "個(gè)人搶======================================================="); 
  15.         test3(amount, min, num); 
  16.     } 
  17.  
  18. private static void test3(BigDecimal amount,BigDecimal min ,BigDecimal num){ 
  19.     final Random random = new Random(); 
  20.     final int[] rand = new int[num.intValue()]; 
  21.     BigDecimal sum1 = BigDecimal.ZERO; 
  22.     BigDecimal redpeck ; 
  23.     int sum = 0; 
  24.     for (int i = 0; i < num.intValue(); i++) { 
  25.         rand[i] = random.nextInt(100); 
  26.         sum += rand[i]; 
  27.     } 
  28.     final BigDecimal bigDecimal = new BigDecimal(sum); 
  29.     BigDecimal remain = amount.subtract(min.multiply(num)); 
  30.     for (int i = 0; i < rand.length; i++) { 
  31.         if(i == num.intValue() -1){ 
  32.             redpeck = remain; 
  33.         }else
  34.             redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR); 
  35.         } 
  36.         if(remain.compareTo(redpeck) > 0){ 
  37.             remain = remain.subtract(redpeck); 
  38.         }else
  39.             remain = BigDecimal.ZERO; 
  40.         } 
  41.         sum1= sum1.add(min.add(redpeck)); 
  42.         System.out.println("第"+(i+1)+"個(gè)人搶到紅包金額為:"+min.add(redpeck)); 
  43.     } 
  44.  
  45.     System.out.println("校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:"+(amount.compareTo(sum1)==0)); 

測試結(jié)果如下:此算法隨機(jī)性較大。 

  1. 0.1元10個(gè)人搶======================================================= 
  2. 第1個(gè)人搶到紅包金額為:0.01 
  3. 第2個(gè)人搶到紅包金額為:0.01 
  4. 第3個(gè)人搶到紅包金額為:0.01 
  5. 第4個(gè)人搶到紅包金額為:0.01 
  6. 第5個(gè)人搶到紅包金額為:0.01 
  7. 第6個(gè)人搶到紅包金額為:0.01 
  8. 第7個(gè)人搶到紅包金額為:0.01 
  9. 第8個(gè)人搶到紅包金額為:0.01 
  10. 第9個(gè)人搶到紅包金額為:0.01 
  11. 第10個(gè)人搶到紅包金額為:0.01 
  12. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  13. 100元10個(gè)人搶======================================================= 
  14. 第1個(gè)人搶到紅包金額為:2.35 
  15. 第2個(gè)人搶到紅包金額為:14.12 
  16. 第3個(gè)人搶到紅包金額為:5.74 
  17. 第4個(gè)人搶到紅包金額為:6.61 
  18. 第5個(gè)人搶到紅包金額為:0.65 
  19. 第6個(gè)人搶到紅包金額為:10.97 
  20. 第7個(gè)人搶到紅包金額為:9.15 
  21. 第8個(gè)人搶到紅包金額為:7.93 
  22. 第9個(gè)人搶到紅包金額為:1.31 
  23. 第10個(gè)人搶到紅包金額為:41.17 
  24. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  25. 1元10個(gè)人搶======================================================= 
  26. 第1個(gè)人搶到紅包金額為:0.10 
  27. 第2個(gè)人搶到紅包金額為:0.02 
  28. 第3個(gè)人搶到紅包金額為:0.12 
  29. 第4個(gè)人搶到紅包金額為:0.03 
  30. 第5個(gè)人搶到紅包金額為:0.05 
  31. 第6個(gè)人搶到紅包金額為:0.12 
  32. 第7個(gè)人搶到紅包金額為:0.06 
  33. 第8個(gè)人搶到紅包金額為:0.01 
  34. 第9個(gè)人搶到紅包金額為:0.04 
  35. 第10個(gè)人搶到紅包金額為:0.45 
  36. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  37. 1000元10個(gè)人搶======================================================= 
  38. 第1個(gè)人搶到紅包金額為:148.96 
  39. 第2個(gè)人搶到紅包金額為:116.57 
  40. 第3個(gè)人搶到紅包金額為:80.49 
  41. 第4個(gè)人搶到紅包金額為:32.48 
  42. 第5個(gè)人搶到紅包金額為:89.39 
  43. 第6個(gè)人搶到紅包金額為:65.60 
  44. 第7個(gè)人搶到紅包金額為:20.77 
  45. 第8個(gè)人搶到紅包金額為:16.03 
  46. 第9個(gè)人搶到紅包金額為:36.79 
  47. 第10個(gè)人搶到紅包金額為:392.92 
  48. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 

四、割線法

還是以10元10個(gè)紅包為例,在(0,10)范圍隨機(jī)9個(gè)間隔大于等于0.01數(shù),假設(shè)為[1,1.2,2,3,4,5,6,7,8]

  1. 第一個(gè)紅包得1元
  2. 第二個(gè)紅包得0.2元
  3. 第三個(gè)紅得0.8元。
  4. 以此類推。 
  1. public static void main(String[] args) { 
  2.     //初始化測試場景 
  3.     BigDecimal[][] rrr = { 
  4.             {new BigDecimal("0.1"), new BigDecimal("10")}, 
  5.             {new BigDecimal("1"), new BigDecimal("10")}, 
  6.             {new BigDecimal("100"), new BigDecimal("10")}, 
  7.             {new BigDecimal("1000"), new BigDecimal("10")} 
  8.     }; 
  9.     BigDecimal min = new BigDecimal("0.01"); 
  10.     //測試個(gè)場景 
  11.     for (BigDecimal[] decimals : rrr) { 
  12.         final BigDecimal amount = decimals[0]; 
  13.         final BigDecimal num = decimals[1]; 
  14.         System.out.println(amount + "元" + num + "個(gè)人搶======================================================="); 
  15.         test3(amount, min, num); 
  16.     } 
  17.  
  18. private static void test3(BigDecimal amount,BigDecimal min ,BigDecimal num){ 
  19.     final Random random = new Random(); 
  20.     final int[] rand = new int[num.intValue()]; 
  21.     BigDecimal sum1 = BigDecimal.ZERO; 
  22.     BigDecimal redpeck ; 
  23.     int sum = 0; 
  24.     for (int i = 0; i < num.intValue(); i++) { 
  25.         rand[i] = random.nextInt(100); 
  26.         sum += rand[i]; 
  27.     } 
  28.     final BigDecimal bigDecimal = new BigDecimal(sum); 
  29.     BigDecimal remain = amount.subtract(min.multiply(num)); 
  30.     for (int i = 0; i < rand.length; i++) { 
  31.         if(i == num.intValue() -1){ 
  32.             redpeck = remain; 
  33.         }else
  34.             redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR); 
  35.         } 
  36.         if(remain.compareTo(redpeck) > 0){ 
  37.             remain = remain.subtract(redpeck); 
  38.         }else
  39.             remain = BigDecimal.ZERO; 
  40.         } 
  41.         sum1= sum1.add(min.add(redpeck)); 
  42.         System.out.println("第"+(i+1)+"個(gè)人搶到紅包金額為:"+min.add(redpeck)); 
  43.     } 
  44.  
  45.     System.out.println("校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:"+(amount.compareTo(sum1)==0)); 

測試結(jié)果如下:此算法隨機(jī)性較大,且性能不好。 

  1. 0.1元10個(gè)人搶======================================================= 
  2. 第1個(gè)人搶到紅包金額為:0.01 
  3. 第2個(gè)人搶到紅包金額為:0.01 
  4. 第3個(gè)人搶到紅包金額為:0.01 
  5. 第4個(gè)人搶到紅包金額為:0.01 
  6. 第5個(gè)人搶到紅包金額為:0.01 
  7. 第6個(gè)人搶到紅包金額為:0.01 
  8. 第7個(gè)人搶到紅包金額為:0.01 
  9. 第8個(gè)人搶到紅包金額為:0.01 
  10. 第9個(gè)人搶到紅包金額為:0.01 
  11. 第10個(gè)人搶到紅包金額為:0.01 
  12. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  13. 100元10個(gè)人搶======================================================= 
  14. 第1個(gè)人搶到紅包金額為:19.84 
  15. 第2個(gè)人搶到紅包金額為:2.73 
  16. 第3個(gè)人搶到紅包金額為:8.95 
  17. 第4個(gè)人搶到紅包金額為:14.10 
  18. 第5個(gè)人搶到紅包金額為:18.60 
  19. 第6個(gè)人搶到紅包金額為:3.66 
  20. 第7個(gè)人搶到紅包金額為:9.17 
  21. 第8個(gè)人搶到紅包金額為:15.49 
  22. 第9個(gè)人搶到紅包金額為:5.61 
  23. 第10個(gè)人搶到紅包金額為:1.85 
  24. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  25. 1元10個(gè)人搶======================================================= 
  26. 第1個(gè)人搶到紅包金額為:0.02 
  27. 第2個(gè)人搶到紅包金額為:0.28 
  28. 第3個(gè)人搶到紅包金額為:0.03 
  29. 第4個(gè)人搶到紅包金額為:0.02 
  30. 第5個(gè)人搶到紅包金額為:0.11 
  31. 第6個(gè)人搶到紅包金額為:0.23 
  32. 第7個(gè)人搶到紅包金額為:0.18 
  33. 第8個(gè)人搶到紅包金額為:0.09 
  34. 第9個(gè)人搶到紅包金額為:0.03 
  35. 第10個(gè)人搶到紅包金額為:0.01 
  36. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 
  37. 1000元10個(gè)人搶======================================================= 
  38. 第1個(gè)人搶到紅包金額為:69.28 
  39. 第2個(gè)人搶到紅包金額為:14.68 
  40. 第3個(gè)人搶到紅包金額為:373.16 
  41. 第4個(gè)人搶到紅包金額為:274.73 
  42. 第5個(gè)人搶到紅包金額為:30.77 
  43. 第6個(gè)人搶到紅包金額為:30.76 
  44. 第7個(gè)人搶到紅包金額為:95.55 
  45. 第8個(gè)人搶到紅包金額為:85.20 
  46. 第9個(gè)人搶到紅包金額為:10.44 
  47. 第10個(gè)人搶到紅包金額為:15.43 
  48. 校驗(yàn)每個(gè)紅包累計(jì)額度是否等于紅包總額結(jié)果:true 

 

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2018-10-18 13:59:36

2022-05-20 08:17:43

Java日志

2015-11-12 09:39:28

微信紅包實(shí)現(xiàn)

2020-05-18 07:50:47

線上故障排查

2024-08-19 11:31:41

2015-02-26 14:45:42

微信支付寶紅包

2018-07-03 16:07:50

2018-01-31 14:11:31

微信紅包隨機(jī)

2020-07-06 10:38:44

辦公軟件工具效率

2023-07-11 10:24:00

分布式限流算法

2015-02-27 15:19:36

微信紅包算法

2015-03-19 15:13:20

PHP基本排序算法代碼實(shí)現(xiàn)

2016-12-23 17:20:56

2011-03-16 09:05:53

NATiptables

2021-12-22 09:34:01

Golagn配置方式

2021-08-11 20:17:22

推薦算法系統(tǒng)

2021-06-24 17:55:40

Python 開發(fā)編程語言

2018-11-12 10:20:29

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊

2022-05-07 10:14:07

Python數(shù)據(jù)可視化

2009-09-08 17:20:01

C#排序算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

制服下的诱惑暮生| 国产偷久久久精品专区| 尤物在线免费视频| 国产95亚洲| 性做久久久久久免费观看欧美| 国产一区二区黄色| 国产精品成人无码| 亚洲综合色网| 精品视频偷偷看在线观看| 四季av一区二区| 亚洲夜夜综合| 337p粉嫩大胆噜噜噜噜噜91av| 日韩**中文字幕毛片| 最新av电影网站| 欧美wwwwww| 欧美人牲a欧美精品| 无码人妻精品一区二区蜜桃网站| 日本福利片在线| 国产一区二区三区国产| 日本久久久久久| 国产高潮国产高潮久久久91| 亚洲欧美校园春色| 欧美一级黄色录像| 久久精品国产一区| 亚洲综合社区网| 久久国产视频一区| 亚洲国产一区二区在线观看| 日韩av最新在线| 亚洲免费av一区| 天堂√8在线中文| 亚洲黄网站在线观看| 麻豆av一区二区| 亚洲精品久久久久avwww潮水| 日韩中文字幕亚洲一区二区va在线| 欧美精品在线观看91| 亚洲а∨天堂久久精品2021| 99久久香蕉| 91精品欧美一区二区三区综合在| 女人另类性混交zo| 91九色porn在线资源| **网站欧美大片在线观看| 六十路精品视频| 欧美一级特黄aaaaaa大片在线观看| 久久99精品国产麻豆婷婷| 国产97色在线| 亚洲伊人成人网| 一区精品久久| 欧美极品xxxx| 欧美精品成人久久| 欧美高清日韩| 欧美老少做受xxxx高潮| 国精品无码一区二区三区| 欧美电影免费观看高清| 在线播放日韩专区| 手机免费看av| 国精一区二区| 亚洲天堂成人在线| 日本少妇高潮喷水xxxxxxx| 欧美一级二级三级视频| 日韩av中文字幕在线播放| av在线播放网址| 久久午夜影院| 亚洲精品视频免费| 人人妻人人澡人人爽人人精品| 农村少妇一区二区三区四区五区| 亚洲国产精品大全| 日本护士做爰视频| 欧美精品一区二区三区免费播放| 久久久久国产精品无码免费看| 精品国产一级| 日韩欧美综合一区| 又黄又色的网站| 99re91这里只有精品| 亚洲精品一区二区三区精华液| 亚洲欧美日韩色| 欧美亚洲tv| 尤物九九久久国产精品的分类| 国产又粗又长又硬| 婷婷亚洲综合| 欧美区二区三区| 日本一级黄色大片| 性娇小13――14欧美| 日韩女在线观看| 亚洲综合一区中| 国产成人亚洲综合a∨婷婷图片| 国产精品18毛片一区二区| 亚洲美女福利视频| 91在线一区二区三区| 日韩av在线一区二区三区| 日本在线天堂| 亚洲午夜影视影院在线观看| 男人日女人bb视频| www.26天天久久天堂| 91精品国产欧美一区二区18| 亚洲自拍偷拍精品| 国产一区二区三区四区五区传媒 | gogogo高清免费观看在线视频| 国产精品亚洲综合在线观看| 精品视频在线导航| 妖精视频在线观看免费| 亚洲国产免费看| 国产精品久久久久久久久久久久久久| 99热这里只有精品在线| 91蝌蚪porny成人天涯| 影音先锋在线亚洲| 精品极品在线| 欧美精品第1页| 人妖粗暴刺激videos呻吟| 日韩夫妻性生活xx| 91国产视频在线| 国产精品探花视频| 成人蜜臀av电影| 宅男av一区二区三区| 伊人网在线播放| 91精品国产一区二区三区香蕉| 右手影院亚洲欧美| 欧美特黄a级高清免费大片a级| 琪琪亚洲精品午夜在线| 国产福利小视频| 中文字幕+乱码+中文字幕一区| 欧美久久久久久久久久久久久 | 欧美午夜宅男影院| 无码国产精品一区二区免费式直播 | 久久国产高清视频| 天堂资源在线中文精品| 国产一区喷水| 在线xxxx| 欧美一区二区网站| 人人艹在线视频| 久久亚洲影院| 国精产品99永久一区一区| 成人日韩欧美| 欧美三级一区二区| 四虎永久免费在线观看| 亚洲作爱视频| 精品国产中文字幕| 999精品网| 日韩美女在线视频| 久久精品亚洲a| 精品制服美女久久| 亚洲第一导航| 成人交换视频| 中文字幕精品一区久久久久| 黄色免费av网站| www国产成人| avav在线看| 要久久爱电视剧全集完整观看 | 国产精品一品视频| 国产精品夜夜夜爽张柏芝| 一区二区三区| 久久色在线播放| 国产精品伦一区二区三区| 亚洲欧洲精品一区二区精品久久久| 天天爽天天爽夜夜爽| 欧美一区三区| 国产日韩亚洲欧美| 黄色精品免费看| 日韩一区二区三区在线视频| www.毛片com| 国产精品白丝jk白祙喷水网站| 男人草女人视频| 在线精品国产亚洲| 国内精品久久久久久久| 婷婷在线免费视频| 欧美视频国产精品| 99久久精品免费视频| 日本伊人色综合网| 中文字幕日韩一区二区三区不卡 | 午夜成年人在线免费视频| 日韩免费看网站| 国产无码精品一区二区| 91视视频在线直接观看在线看网页在线看| 人妻少妇精品无码专区二区| 亚洲桃色综合影院| 国产欧美亚洲精品| 手机av免费在线| 日韩精品黄色网| 中文字幕一区二区三区免费看| 综合久久久久综合| 中文字幕99页| 久久高清免费观看| 一区二区三区三区在线| 成人性生交大片免费看中文视频| 欧美性视频精品| √新版天堂资源在线资源| 精品捆绑美女sm三区| 国产精品国产三级国产专区52| 欧美国产日韩在线观看| 亚洲av无码久久精品色欲| 国产亚洲激情| 在线观看成人av| 国产主播性色av福利精品一区| 国产成人久久精品| sm国产在线调教视频| 亚洲精品日韩丝袜精品| 亚洲最新av网站| 精品久久久久久久久久| 9.1片黄在线观看| 成人免费黄色在线| 五月婷婷狠狠操| 好看不卡的中文字幕| 日韩欧美精品一区二区| 亚洲va欧美va人人爽成人影院| 日本伊人精品一区二区三区介绍| 在线看福利影| 中文国产成人精品| 色婷婷av一区二区三区之红樱桃 | 另类小说色综合| 激情久久久久久| 丰满女人性猛交| 奇米亚洲欧美| 国产麻豆乱码精品一区二区三区| 日韩深夜福利网站| 777国产偷窥盗摄精品视频| 老司机在线永久免费观看| 日韩电影在线观看中文字幕| 国产绿帽一区二区三区| 91激情五月电影| 永久免费看片在线播放| 一区二区三区成人在线视频| 天堂网av2018| 久久久亚洲午夜电影| 人妻av一区二区三区| 久草精品在线观看| 老熟妇仑乱视频一区二区| 一区二区亚洲| 成人在线视频一区二区三区| 国产大片一区| 水蜜桃亚洲精品| 免费成人高清在线视频theav| 国产精品露出视频| 欧美成人精品一级| 成人激情视频在线| 黑人一区二区三区| 国产精品对白刺激| 日韩欧美一区二区三区在线观看 | 日韩国产一二三区| 国产精品成人免费电影| xx欧美xxx| 91爱爱小视频k| 看黄在线观看| 国内偷自视频区视频综合| 青春草视频在线| 欧美老女人性生活| 1024在线播放| 精品视频9999| 三级网站视频在在线播放| 久久成人在线视频| www免费视频观看在线| 久久久成人av| av免费在线观看网址| 欧美成人精品三级在线观看| 中文字幕在线观看网站| 久久在线精品视频| 97caopor国产在线视频| 欧美大尺度在线观看| 四季久久免费一区二区三区四区| 久久97精品久久久久久久不卡 | 日韩暖暖在线视频| 成人国产精品| 91久久久久久| 日韩一二三区| 精品综合久久| 国产亚洲一区| 亚洲综合欧美日韩| 一区二区三区午夜探花| www.一区二区.com| 亚洲乱亚洲高清| 亚洲成熟丰满熟妇高潮xxxxx| 视频一区中文字幕| 亚洲免费黄色录像| 国产河南妇女毛片精品久久久 | 97人妻人人澡人人爽人人精品| 欧美精品久久99| 亚洲国产精品成人久久蜜臀| 亚洲国产成人av在线| 久草在现在线| 大量国产精品视频| 成人av影院在线观看| 日韩av免费一区| 婷婷成人av| 国产免费一区二区三区| 精品免费视频| a级片一区二区| 久久国产福利| 91丝袜超薄交口足| 99re在线精品| 久草福利资源在线| 黄色91在线观看| 中文字幕av影视| 亚洲国产精品人久久电影| av在线播放网站| 欧美国产日韩在线| 成人在线爆射| 91日韩久久| 精品久久久亚洲| 97久久国产亚洲精品超碰热| 久久最新视频| 国产高潮失禁喷水爽到抽搐| 中文子幕无线码一区tr| 日本网站免费观看| 91精品国产欧美一区二区18| 免费av在线电影| 欧美大片网站在线观看 | 欧美中文一区二区三区| 日本一区二区三区四区高清视频| 99re这里只有精品在线| 午夜一区二区三区在线观看| 中文字幕1区2区3区| 亚洲国产精久久久久久久| 色哟哟免费在线观看| 欧美一区二区色| 一区二区三区四区精品视频| 神马影院午夜我不卡| 亚洲大黄网站| 超碰在线免费av| 日本一区二区三区在线观看| 欧美日韩综合在线观看| 日韩欧美第一区| 瑟瑟视频在线| 国产精品美女999| 欧美尿孔扩张虐视频| 男人的天堂avav| 久久99精品国产麻豆婷婷洗澡| 日本一级免费视频| 欧美色videos| 日韩精品系列| 午夜精品久久久99热福利| 欧美中文高清| 国产精品88久久久久久妇女| 另类小说一区二区三区| 91精品国自产在线| 日韩欧美在线第一页| 污污视频在线观看网站| 久久久久久久久久久91| 精品国产不卡一区二区| 中文精品一区二区三区| 奇米色一区二区| 99国产精品免费| 在线影视一区二区三区| 国产精品影院在线| 国产成人精品久久| 国产99久久精品一区二区300| 亚洲 高清 成人 动漫| 99久久久国产精品免费蜜臀| 欧美bbbbbbbbbbbb精品| 亚洲精品乱码久久久久久按摩观| 98色花堂精品视频在线观看| 国产欧美欧洲| 91久久中文| 国产高清自拍视频| 欧美日韩视频在线| 男人天堂网在线| 国产极品jizzhd欧美| 精品久久电影| 欧美日韩一区二区三区69堂| 国产精品家庭影院| 国产情侣一区二区| 欧美久久久精品| 国产精品宾馆| www黄色av| 国产清纯白嫩初高生在线观看91| 亚洲av综合一区| 日韩在线免费高清视频| 日韩一级淫片| 国产日韩av网站| 久久久久综合网| 中文字幕丰满人伦在线| 色综合久久久久综合体| 色婷婷精品国产一区二区三区| 无码国产色欲xxxx视频| 狠狠色伊人亚洲综合成人| 色网站在线视频| 樱桃国产成人精品视频| 免费一级特黄特色大片| 日本一区二区三区国色天香| 中文字幕在线观看1| 久久伊人色综合| 99久久香蕉| 日本成人黄色网| 亚洲精品日韩综合观看成人91| 免费观看的毛片| 国产精品高潮呻吟久久av无限 | 欧美黄色aaa| 亚洲成色777777在线观看影院| 日韩不卡免费高清视频| 裸体大乳女做爰69| av一区二区三区四区| 无码人妻久久一区二区三区| 久久国产精品首页| 色婷婷狠狠五月综合天色拍 | 日本三级黄色大片| 一区二区三区天堂av | 久久久久久国产精品免费免费| 美女视频黄a大片欧美| 五月婷婷一区二区| 亚洲欧美日韩高清| 亚洲一区电影| 欧美性猛交久久久乱大交小说| 亚洲综合色区另类av|