仮定しましょう:
List<element>
どの要素が:
public class Element(){
int Weight {get;set;}
}
私が達成したいのは、要素を重みでランダムに選択することです。例えば:
Element_1.Weight = 100;
Element_2.Weight = 50;
Element_3.Weight = 200;
そう
- 当選確率
Element_1
は100/(100+50+200)=28.57% - 当選確率
Element_2
は50/(100+50+200)=14.29% - 当選確率
Element_3
は200/(100+50+200)=57.14%
ループを作成したり、合計を計算したりできることは知っています...
私が学びたいのは、Linq でこれを 1 行で (またはできるだけ短く) 実行する最善の方法は何ですか、ありがとうございます。
アップデート
以下に私の答えを見つけました。私が最初に学んだことは、Linqは魔法ではなく、適切に設計された loop よりも遅いということです。
したがって、私の質問は、重みでランダムな要素を見つけることになります(できるだけ短いものはありません:)