最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)拼手氣紅包算法

 更新時(shí)間:2020年09月13日 08:43:43   作者:天馬3798  
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)拼手氣紅包算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C#實(shí)現(xiàn)拼手氣紅包算法的具體代碼,供大家參考,具體內(nèi)容如下

一、方案1:即開(kāi)即中,考慮機(jī)會(huì)均等,減少金額差較大的幾率

可以每次點(diǎn)擊時(shí)候,隨機(jī)產(chǎn)生

static double[] GetRandomMoney(double money, int n)
 {
  double[] array = new double[n];
  RedPackage red = new RedPackage() { money = money, count = n };
  for (int i = 0; i < n; i++)
  {
   array[i] = GetRandomMoney(red);
  }
  return array;
 }
 /// <summary>
 /// 即開(kāi)即中,考慮機(jī)會(huì)均等,減少金額差較大的幾率
 /// 隨機(jī)產(chǎn)生,額度在0.01和剩余平均值*2之間
 /// </summary>
 /// <returns></returns>
 static double GetRandomMoney(RedPackage redPackage)
 {
  //如果最后一個(gè),返回全部
  if (redPackage.count == 1)
  {
   redPackage.count--;
   return Math.Round(redPackage.money * 100) / 100.00;
  }
  //隨機(jī)生成
  Random ran = new Random();
  double min = 0.01;
  double max = redPackage.money / redPackage.count * 2;
  double money = ran.NextDouble() * max;
 
  money = money <= min ? 0.01 : money;
  money = Convert.ToInt32(money * 100) / 100.00;
  redPackage.count--;
  redPackage.money -= money;
  return money;
 }
 public class RedPackage
 {
  /// <summary>
  /// 剩余紅包數(shù)量
  /// </summary>
  public int count;
  /// <summary>
  /// 剩余金額
  /// </summary>
  public double money;
 }

生成5組隨機(jī)結(jié)果如下:

二、方案2: 一次性拆分紅包,不考慮機(jī)會(huì)平等性

/// <summary>
/// 一次性拆分紅包,不考慮機(jī)會(huì)平等性
/// 最小單位1 分
/// </summary>
 static double[] DiviedOne(double money, int n)
 {
 
  double min = 0.01;
  if (money < min)
   throw new Exception("拆分金額不能小于0.01 ");
  int fen = (int)money * 100;
  //創(chuàng)建n 個(gè)紅包數(shù)組
  int[] array = new int[n];
  //每個(gè)紅包先填充1分
  Array.Fill(array, 1);
  fen -= n;
 
  //第二步,隨機(jī)分配
  Random ran = new Random();
  int i = 0;
  while (fen > 1)
  {
   int f = ran.Next(fen);
   array[i % n] += f;
   fen -= f;
   i++;
  }
  //最后一分錢(qián),補(bǔ)到第一個(gè)數(shù)組
  if (fen > 0)
  {
   array[0] += fen;
  }
 
  return array.Select(q => q / 100.0).ToArray();
 }

生成5組隨機(jī)結(jié)果如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#調(diào)用SQLite的詳細(xì)代碼舉例

    C#調(diào)用SQLite的詳細(xì)代碼舉例

    SQLite是一個(gè)輕量級(jí)、跨平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù),在小型項(xiàng)目中,方便,易用,同時(shí)支持多種開(kāi)發(fā)語(yǔ)言,這篇文章主要給大家介紹了關(guān)于C#調(diào)用SQLite的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • C#多線程系列之進(jìn)程同步Mutex類(lèi)

    C#多線程系列之進(jìn)程同步Mutex類(lèi)

    本文詳細(xì)講解了C#多線程中的進(jìn)程同步Mutex類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#中TreeView節(jié)點(diǎn)的自定義繪制方法

    C#中TreeView節(jié)點(diǎn)的自定義繪制方法

    這篇文章主要介紹了C#中TreeView節(jié)點(diǎn)的自定義繪制方法,實(shí)例展示了TreeView節(jié)點(diǎn)的操作技巧,需要的朋友可以參考下
    2015-02-02
  • 利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息

    利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • DataGridView控件常用屬性介紹

    DataGridView控件常用屬性介紹

    這篇文章介紹了DataGridView控件的常用屬性,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • C/C++與Java各數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)的詳細(xì)比較

    C/C++與Java各數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)的詳細(xì)比較

    本篇文章主要是對(duì)C/C++與Java各數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)進(jìn)行了詳細(xì)的對(duì)比。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • 淺析C#中結(jié)構(gòu)與類(lèi)的區(qū)別

    淺析C#中結(jié)構(gòu)與類(lèi)的區(qū)別

    本文主要對(duì)C#結(jié)構(gòu)與類(lèi)的區(qū)別進(jìn)行簡(jiǎn)要分析,文中舉了實(shí)例,便于理解,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧
    2016-12-12
  • C# winfrom實(shí)現(xiàn)讀取修改xml

    C# winfrom實(shí)現(xiàn)讀取修改xml

    這篇文章主要為大家詳細(xì)介紹了C# winfrom實(shí)現(xiàn)讀取修改xml的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • c#實(shí)現(xiàn)適配器模式的項(xiàng)目實(shí)踐

    c#實(shí)現(xiàn)適配器模式的項(xiàng)目實(shí)踐

    適配器模式將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作,本文主要介紹了c#實(shí)現(xiàn)適配器模式的項(xiàng)目實(shí)踐,感興趣的可以一起來(lái)了解一下
    2023-08-08
  • C#中的Task.WaitAll和Task.WaitAny方法介紹

    C#中的Task.WaitAll和Task.WaitAny方法介紹

    這篇文章介紹了C#中的Task.WaitAll和Task.WaitAny方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

霍州市| 乐都县| 东港市| 西乌珠穆沁旗| 海晏县| 万安县| 潜江市| 新河县| 扬州市| 田东县| 平凉市| 海宁市| 独山县| 潼南县| 塔城市| 白城市| 讷河市| 即墨市| 呼伦贝尔市| 中宁县| 永康市| 怀宁县| 云安县| 手游| 镇江市| 宁海县| 平果县| 湖南省| 阜平县| 东宁县| 顺义区| 广元市| 双城市| 仙桃市| 阿拉善左旗| 惠来县| 成都市| 永寿县| 阿拉善左旗| 十堰市| 新余市|