0

我需要你的帮助来构建一个算法来解决以下问题:

A 5x5 table can be filled with the values ​​0 and 1 so that each line and each column of the table consists of exactly two ones and three zeros. How many solutions exist?

如果你想提供一些代码,你可以自由地使用你喜欢的语言。我主要使用 R、Matlab 和 Python。

我试图将表格转换为向量:

unique(perms([ones(1,10),zeros(1,15)]), 'rows')

然后,对于每一行,我将形成 5x5 表并检查所有行总和和列总和是否等于 2。但上述命令产生了错误:??? Maximum variable size allowed by the program is exceeded.

4

2 回答 2

1

这是一个 python 表达式,它强制所有矩阵每行有两个 1:

from itertools import *
print len(filter(
  lambda candidate: all(imap(
    lambda index: sum(imap(lambda _: _[index], candidate)) == 2,
    xrange(5)
  )),
  product(set(permutations([0,0,0,1,1])), repeat=5)
))
于 2013-09-05T07:48:06.063 回答
0

看看perms向量的 Matlab 函数[0 0 0 1 1],我想你会得到它。

于 2013-09-04T13:16:27.780 回答