我有一组N个问题,每个问题都归类为R个主题之一。我试图为测验产生一些随机排列的问题。生成均匀分布的随机排列的算法
我该如何生成一组问题的随机排列,使得没有两个连续的问题具有相同的主题?它并不需要完美;我只是不想让有连续五个相同类型的问题的人。另外,如果这样的排序是不可能的(如A中的18和B中的2),那么算法是否可以找到“均匀分布”的排列组合? (在这种情况下,合理地喜欢6As,B,7As,B,5As)
另外,因为我顺序提交问题,我可以每次随机选择一个不同的主题剩余的问题,没有机会最后迫使一些重复?
我已经在Google上随机浏览了一段时间,似乎找不到适合此情况的任何内容。除了随机生成排列,直到找到一个有效的排列,这是缓慢,丑陋和愚蠢的。
为什么你不能找到任何适合你的情况下,“随机”的原因,是因为你的约束实际上让**不是随机的**。你希望它是平衡的,而不是随机的。 –
......“关闭的主题”是什么意思,为什么它适用于这个问题? ?_? – user2449745