我有一袋100土豆。我需要將土豆分成N個桶。在每桶中,我必須有15到60個土豆。隨機將元素放入N桶
很明顯,我需要一步一步的解決方案,使其成爲代碼。
我有迄今爲止的最佳方式:
桶的最低數目:100/60 = 1(40)=>輪它=> 2
桶的最大數目:100/15 = 6 (10)=>輪下來=> 6
所以可以有至少2和最多6個桶。現在我們選擇一個隨機數(因爲我只需要一個解決方案,而不是全部)。
讓我們挑選每桶3.
土豆:100/3 = 33(1)
剷鬥:33,33,34
現在這裏是棘手的部分。雖然這是對原始問題的解決方案,但它不適用於我,因爲我需要的數字比這更隨機。在這個問題的條件是15-60,但在這裏我們只得到33-34,這是我所需要的太統一。
從這裏的解決方案之一可能是開始從每個桶中添加和減去數字。可能做10次左右的迭代,但我認爲必須有更好的方法來做到這一點。
任何想法?
從數學的角度來看,「隨機」分配對應於可能結果的概率分佈,但似乎你會對某些只是「看起來隨機」的東西感到滿意。事先知道的桶數是多少?這些桶是不同的?即33-33-34與33-34-33有什麼區別?這聽起來像土豆沒有區別,所以它是一個關於[最大加數限制]的[整數分區](http://en.wikipedia.org/wiki/Partition_(number_theory))的問題。 – hardmath