【发布时间】:2016-12-06 19:05:33
【问题描述】:
我有一个问题,我在 100x100 的零网格上有 4 个对象 (1),这些零网格被分成 16 个 25x25 的偶数正方形。 我需要创建一个 (16^4 * 4) 表,其中的条目列出了这 4 个对象中每一个在 16 个子矩阵中的所有可能位置。只要对象不相互重叠,对象就可以位于子矩阵中的任何位置。这显然是一个置换问题,但由于索引和位置必须是随机的但在第 16 个方格内不重叠的事实而增加了复杂性。会喜欢任何指针!
我试图做的是创建一个名为“top_left_corner(position)”的函数,它返回您所在的子矩阵左上角的下标。例如top_left_corner(1) = (1,1), top_left_corner(2) = (26,1) 等等。然后我有:
pos = randsample(24,2);
I = pos(1)+top_left_corner(position,1);
J = pos(2)+top_left_corner(position,2);
问题是如何在表中生成并存储它的排列作为线性索引。
【问题讨论】:
标签: algorithm matlab permutation