【发布时间】:2015-10-05 14:03:23
【问题描述】:
我正在尝试用 0 和 1 随机填充二维数组。条件是每个 1 必须垂直或水平地“放置”在另一个 1 旁边,但不能对角线。
http://prntscr.com/8nzl19 在屏幕截图中,您可以看到 3 个 1 块。我希望它们被“连接”起来,这样只有一个 1 块。
是否有任何算法或其他东西可以做到这一点?
【问题讨论】:
-
连接是什么意思?我不完全明白你的问题。
-
你说的
not diagonally是什么意思??如果我将您的示例视为 7x7 矩阵,则(2,2)处的1和(3,1)处的1对角放置。不是吗? -
每个 0 是否也必须放在另一个 0 旁边?
-
您首先用 0 填充数组,然后随机放置 1,但总是在已经存在的旁边放置 1,当然第一个 1 除外。
-
这需要更正式的描述。 “随机”是什么意思?你想从所有可能的板上均匀地取样吗?这可能很难做到。一种理论方法就是:随机填充+检查是否满足约束。这就是某种拉斯维加斯算法,它可能永远不会停止用于大板!
标签: arrays algorithm random multidimensional-array