0
A
回答
0
有十億個不同的排列組合。例如:
1,2,3,4,5,6,7,8,9,10
2,7,9,8,3,1,6,4,10,5
...
實際上,每次10個取10個項目有3,628,800個不同的排列組合。
如果您只需要其中的10個,您可以從其中包含值1-10的數組開始。然後shuffle the array。這成爲您的第一個排列。再次重新排列數組並檢查是否已經生成了該排列。重複這個過程:洗牌,檢查,保存,直到你有10個獨特的排列。
這是非常不可能的(儘管可能),你會在10次嘗試中生成重複排列。
生成副本的可能性隨着生成更多排列而增加,到生成約2,000時增加到50%。但如果你只想要幾百或更少,那麼這種方法會很快爲你做到。
所提出的循環隊列技術也起作用,並且具有簡單性的好處,但所得序列僅僅是原始順序的旋轉,並且在沒有混洗的情況下它不能產生超過10個。我建議的技術會產生更多的「隨機」看序。
1
可以使用圓形隊列數據結構
現在你可以在你喜歡的任何點切割此,它然後它會給你的唯一字符串 例如,如果剪切此在2之間點和3,然後迭代您的隊列,將得到: 3,4,5,6,7,8,9,10,1,2
所以需要實現一個循環隊列,再切它從10個不同的點(1之後,2之後[如圖2所示],3之後,......)
相關問題
- 1. 基於獨特的組合
- 2. 從mongodb獲得10個獨特的隨機問題作爲問答遊戲
- 3. Postgresql獨特問題
- 4. 複合鍵的獨特組合
- 5. MySQL的 - 讓過去的10個獨特
- 6. 獨特的價值問題
- 7. SQL獨特列組合
- 8. 問題陣列獨特
- 9. 問題與xml xs:獨特
- 10. SQL - 組按獨特列組合
- 11. fql和圖表api的獨特組合
- 12. 選擇獨特的組合加一列
- 13. mysql組合了獨特的密鑰
- 14. MongooseJS獨特的組合指數
- 15. 獲得MySQL獨特的按鍵組合
- 16. 串珠項鍊的獨特組合
- 17. SQL和獨特的n-coulmn組合
- 18. 生成文本的獨特組合
- 19. 尋找獨特的組合,不論
- 20. gc問題:10個整數單個對象或10個對象的數組?
- 21. sklearn LDA獨特的標籤問題
- 22. Laravel獨特的驗證問題
- 23. Laravel Eloquent獨特的驗證問題
- 24. 選擇獨特的Sql Server問題
- 25. 問題與獨特的html()jQuery
- 26. WCF獨特的基址問題
- 27. Angular2獨特的變量設置問題
- 28. JIRA JQL:如何單獨搜索特定組件的問題?
- 29. 組合框中繼器,獨特選擇
- 30. 組合兩個單獨的數組
你忘了問一個問題。所有10個問題只有一個[組合](http://en.wikipedia.org/wiki/Combination)。如果你想讓所有的學生得到相同的問題,但順序不同,你需要獨特的[置換](http://en.wikipedia.org/wiki/Permutation)。搜索「生成排列」。 –