我當時正在編寫一個模擬彩票遊戲的程序,叫做凱諾俱樂部,我想匹配他們對於踢球者的賠率。所以我所做的是從1到10046之間選擇一個隨機數,然後根據數字,我返回踢球值。如果隨機數是1000,我會返回踢球值4.我想知道是否有更好的方法來做到這一點。而且我意識到它不會完全達到100%,但那些是我可以在網上找到的賠率。他們加起來100.45%有沒有更好的方法來計算賠率?
public static int Kicker()
{
var rnd = new Random();
int num = rnd.Next(1, 10046);
if (num < 125) //1.25 percent chance
return 10;
if (num < 495) //3.7 percent chance
return 5;
if (num < 1120)//6.25 percent chance
return 4;
if (num < 1745)//6.25 percent chance
return 3;
if (num < 5745)//40 percent chance
return 2;
return 1; // 43 percent chance
}
爲什麼10046?爲什麼要使用int?你可以從Random生成一個double。另外,爲什麼你的隨機在該方法中實例化?它應該是靜態和類級別的,而不是方法級別。 – maccettura
它在一個名爲Pick的類中,它負責挑選繪製數字,玩家數字,千斤頂數字,ez挑選數字和踢球者。 –
....因爲否則如果您以非常快的速度調用此方法(因爲當前時間用作Random的種子),您將始終生成相同的「隨機」數字。 –