C 實現拼手氣紅包演算法

2022-09-26 01:48:14 字數 1071 閱讀 9279

一、方案1:即開即中,考慮機會均等,減少金額差較大的機率

可以每次點選時候,隨機產生

static double getrandommoney(double money, int n)

; for (int i = 0; i < n; i++)

return array;

} //程式設計客棧/

/// 即開即中,考慮機會均等,減少金額差較大的機率

/// 隨機產生,額度在0.01和剩餘平均值*2之間

///

///

static double getrandommoney(redpackage redpackage)

//隨機生成

random ran = new random();

double min = 0.01;

do程式設計客棧uble 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

生成5組隨機結果如下:

二、方案2: 一次性拆分紅包,不考慮機會平等性

///

/// 一次性拆分紅包,不考慮機會平等性

/// 最小單位1 分

///

static double diviedone(double money, int n)

//最後一分錢,補到第乙個陣列

if (fen > 0)

return array.select(q => q / 100.0).toarray();

}生成5組隨機結果如下:

本文標題: c#實現拼手氣紅包演算法

本文位址:

發手氣紅包演算法

lowest 0.01元,最小金額 操作是整數,最小人民幣單位是分,所以有2位小數,最少是0.01元 發金額totalbill 發n人,就取1到100的隨機數n個 為了提高精度,把金額放大100倍 totalamount totalbill 100 n個人各取的隨機數累加得到總份量,用總發紅金額to...

C語言實現搶紅包演算法

1 演算法背景 大家知道,微信拼手氣紅包和普通紅包兩種。普通紅包每個人搶到的金額是固定的 總額的平均數 拼手氣紅包是隨機金額 每個人搶到的是隨機的,差別可能非常大,有的人搶到的是1分,有的搶到的可能是幾元 十幾元 幾十元 目前的搶紅包演算法只能輸入兩個引數,即總金額 總人數。2 演算法要求 現要求同...

如何實現搶紅包演算法?

方法一 二倍均值法 public static listdivideredpackage integer totalamount,integer totalpeoplenum amountlist.add restamount return amountlist 缺陷 除了最後一次,任何一次搶到的金...