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)。搜索“生成排列”。 –