当时我一直面临这个问题,仍在努力寻求解决办法。
在清单中公平分配物品的最佳方法是什么,差异不大?
我们有一个阵列的清单或内容:
Red, Red, Red, Red, Red, Blue, Blue, Blue, Green, Green, Green, Yellow
理想的做法是,产出将产生这样的结果:
Red, Blue, Red, Green, Red, Yellow, Blue, Red, Green, Red, Blue, Green.
如果每个案件“远离”另一个案件,则可能......
当我第一次试图解决这一问题时,我必须承认我是天真的,因此,我刚刚使用某种形式的种子随机编号来掩盖名单,但这会导致 instances然。
该建议以最频繁的频率开始,因此,将对0至4个包容性强的N*12/5定位。
然后将下一个最重复的内容(Blue)放在N*12/3+1的位置上,从0到2个。 如果已经把一些东西放在那里,那么就把它放在下一个空洞的地方。 等等。 然而,在用纸上打碎纸时,这并不在所有情况下都奏效,
名单只是
Red, Red, Red, Red, Red, Blue
这将失败。
在这两种选择中,有三种同种异构体
Red, Red, Blue, Red, Red, Red
Red, Red, Red, Blue, Red, Red
因此,任何想法,或如何执行,都将是荒谬的。
如果涉及一刀切的工作,但现在我所关心的是如何做到这一点。