查找矩阵中所有可能的唯一数组

发布于 12-08 12:08 字数 277 浏览 0 评论 0原文

当给定一个方阵时,在不使用每个数组中任何行/列中的多个元素的情况下找到其中所有可能数组的最佳方法是什么?

例如,在这样的矩阵中:

0 2 3 
1 2 3 
1 2 0

然后它将像这样遍历它: 在此处输入图像描述

然后它将输出以下数组列表:

123
123
023
123
120
020

When given a square matrix, what would be the best way to find all of the possible arrays within it without using more than one element from any row/column in each array?

For example, in a matrix like so:

0 2 3 
1 2 3 
1 2 0

It would then go through it like this:
enter image description here

And then it would output the following list of arrays:

123
123
023
123
120
020

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坚持沉默2024-12-15 12:08:18

您可以直接将每个此类数组映射到数字排列 (0 .. size-1)。为了向您展示其工作原理,排列 (2,1,0) 映射到 3 个坐标 (2,0), (1,1), (0,2).您给出的 6 个示例是

(2,1,0)  (1,2,0)  (0,2,1)

(2,0,1)  (1,0,2)  (0,1,2)

为了解释映射,让我们采用第一个排列 (2,1,0) --> (2,0)、(1,1)、(0,2)。那么,你想要使用的值是 array[2][0], array[1][1], array[0][2]

所以现在的问题是如何生成每个排列。有几种算法,其中一种是用 java 实现的: http://www.merriampark.com/烫发.htm

You can directly map each such array to a permutation of the digits (0 .. size-1). To show you how this works, the permutation (2,1,0) maps to the 3 coordinates (2,0), (1,1), (0,2). The 6 examples you gave are

(2,1,0)  (1,2,0)  (0,2,1)

(2,0,1)  (1,0,2)  (0,1,2)

To explain the mapping, lets take the first permutation (2,1,0) --> (2,0), (1,1), (0,2). Then, the values you want to use are array[2][0], array[1][1], array[0][2]

So now the question is how to generate each permutation. There are a few algorithms, one of which is implemented in java here: http://www.merriampark.com/perm.htm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文