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. SQL - 組按獨特列組合
- 7. 問題與xml xs:獨特
- 8. SQL和獨特的n-coulmn組合
- 9. 選擇獨特的組合加一列
- 10. 尋找獨特的組合,不論
- 11. 串珠項鍊的獨特組合
- 12. Laravel組合三個獨特的價值觀或兩個
- 13. gc問題:10個整數單個對象或10個對象的數組?
- 14. 選擇獨特的Sql Server問題
- 15. 問題與獨特的html()jQuery
- 16. Laravel Eloquent獨特的驗證問題
- 17. WCF獨特的基址問題
- 18. Angular2獨特的變量設置問題
- 19. Laravel獨特的驗證問題
- 20. JIRA JQL:如何單獨搜索特定組件的問題?
- 21. 兩個獨特列組合上的全外連接
- 22. 合併多個獨特的事件數組
- 23. MongoDB獨特的10位數字ID
- 24. 組合框問題
- 25. DHTMLX組合問題
- 26. 組合框問題
- 27. 至多有一個記錄刪除每個元組的獨特組合
- 28. Parse.Query和組合的問題
- 29. Python熊貓 - 多個特定列中的變量的獨特組合
- 30. 問題與NHibernate獨特和尋呼
你忘了問一個問題。所有10個問題只有一個[組合](http://en.wikipedia.org/wiki/Combination)。如果你想讓所有的學生得到相同的問題,但順序不同,你需要獨特的[置換](http://en.wikipedia.org/wiki/Permutation)。搜索「生成排列」。 –