我收集了一些對象的集合,我一次只檢查一個對象,直到檢查完所有對象。每個對象都由預定義的權重選擇,並有許多可能的重複項。最終結果將是集合中項目的有序列表。什麼是有效的方式來獲得這個清單?如何從一個集合中隨機選取一個隨機的所有物品?
考慮,例如,與指定的卷的以下球:
A: 2
B: 3
C: 25
D: 100
讓我們添加4個所述的球,3個乙球,1C球,和2個d球的袋子。假設繪製一個特定的球的概率與其體積成正比,那麼在這一點上繪製一個特定的D球的概率是100/242(它們具有相同的權重但不相同)。假設這個D被繪製並繼續。此時抽出C球的機率是25/142,因爲之前D球被移除。假設你在這裏畫出C球並繼續。繼續繪製,直到所有球被移除,以便您擁有像DCDBABBA這樣的序列。
如果你只是想產生一個像「DCDBABBA」這樣的字符串,那麼我認爲你其實並不關心*哪個D球被挑選出來 - 對嗎? –
我列舉了這種方式來簡化問題。你是對的 - 一個更準確的字符串應該是D0CD1B0A0B1B2A1。 – dromodel
在這種情況下,我會更新我的帖子。 –