【发布时间】:2013-10-08 04:41:52
【问题描述】:
我有一个包含n 元素的序列,我想随机将k“断点”每个至少minDist 彼此远离(和末端)。例如,对于n=9, k=2, minDist=2,我想以相等的概率生成以下之一:
[2 4][2 5][2 6][2 7][3 5][3 6][3 7][4 6][4 7][5 7]
到目前为止,我想出了:随机放置一个,“禁用”它周围所需数量的节点,然后选择另一个随机数,但这让我觉得效率有点低。我正在用 MATLAB 编程,但任何语言都可以。
我将使用它来初始化一些遗传算法的种群,因此我希望每种可能性都具有相同的可能性,以确保我覆盖了整个搜索空间。仅仅确定性地分布断点是不够的。
【问题讨论】:
-
您的示例中的
[3,7]是什么? -
[3,7]是所需的断点位置吗?如果是这样,如何指定该交互也需要minDist? -
你举了一个非常令人困惑的例子,伙计。
-
@LuisMendo 这个例子令人困惑,[3 7] 是我想要生成的结果之一。我已经澄清了这个例子,希望现在它更容易理解了。
-
@VPeric 在您的示例中,如果
minDist==2并且您的元素编号为 1 到 9,那么您的断点中不应该有 2,最小的不应该是 3。