0
我期待從列表中選擇1個人,其中列表中的每個項目都有一定的「權重」。假設Person類具有必要的構造函數。C#和「加權概率」
public class Person {
public string Name { get; set; }
public float Weighting { get; set; }
}
public List<Person> People = new List<Person>();
People.Add(new Person("Tim", 1.0));
People.Add(new Person("John", 2.0));
People.Add(new Person("Michael", 4.0));
現在,我想從這個列表中隨機選擇一個人。但是平均值我想挑選邁克爾比蒂姆多4倍。我想像約翰一樣經常選擇一半(2/4)。當然,我想像約翰那樣經常選擇邁克爾。
這是否有意義?
我已經有代碼來根據百分比選擇人員。如果我只是通過這個例子中提供的權重乘以百分比的機會,它會不會奏效?
此外,我目前的系統只有的機會高達100%,沒有任何上述的。有關如何克服這一限制的任何建議?根據列表中最大的因素,我可能不得不擴大每個機會?
public static bool Hit(double pct) {
if (rand == null)
rand = new Random();
return rand.NextDouble() * 100 <= pct;
}
或者我錯過了什麼?
你的問題是有點含糊,並沒有真正適合這個論壇,但我看不出什麼錯了你的建議方案。建議您先嚐試一下,然後如果它不起作用,您可以回到這裏(或更合適的論壇),並詢問關於特定編碼問題的具體問題。 – LordWilmore