この投稿で提供された回答を使用して、リストからランダムにユニークなアイテムを選択したいと思います。
説明した方法に従って、ループの各反復で、現在のアイテムがリストから選択される確率のパーセンテージ値である確率値を生成します。
私が知る必要があるのは、このパーセンテージ値を使用してアイテムを選択する(または選択しない)方法です。
これが私が持っているコードですremainingIndices
。List<int>
for (var i = 0; i < remainingIndices.Count; i++)
{
var probability = pixelsToAdd / (float)(remainingIndices.Count - i);
}
pixelsToAdd
は120で、remainingIndices.Count
は3600です。私が始めている確率値は0.0333333351です。
ソリューションは、はるかに広い範囲の値、できれば任意の値で機能するように柔軟である必要があります。
ありがとう
コメント
この質問の将来の読者のために、最初は確率値が0から100の間のパーセンテージであると思ったが、実際には0から1の間の値でRandom.NextDouble()
あるため、戻り値と完全に一致することを明確にする必要があります。以下の回答で説明されている比較。