[C#] 自訂機率(泛型)

  • 2413
  • 0

摘要:[C#] 自訂機率(泛型)

分享一下把之前寫過的自訂機率改成支援泛型,介紹一下使用方式:

 

設定項目機率:
MyProbability<MyClass> oProb = new MyProbability<MyClass>();
oProb.Items.Add(101, new MyClass() { Name = "pomeranian01", Age = 1 }, 0.00001m);            
oProb.Items.Add(104, new MyClass() { Name = "pomeranian02", Age = 2 }, 0.39999m);
oProb.Items.Add(106, new MyClass() { Name = "pomeranian03", Age = 3 }, 0.6m);

 

用id取得項目:
oProb.Items.GetItemById(104)

 

用index取得項目:
oProb.Items[2]

 

取得設定項目個數:
oProb.Items.Size()

 

依照設定的機率隨機產生結果:
oProb.RunRandom()

 

發文附圖是鄉民的好習慣~

 

 

準確度測試,樣本數用1000000來測試:

 

測試結果:
只要機率不要設太小(EX:0.00001),準確率應該會有99%


--------------------------------------------------------------------------------
Demo Download Demo_CustomProb_Generic.rar
--------------------------------------------------------------------------------


有BUG或是有哪邊可以改善請跟我說一下~
感謝 : )