寻找“多米诺组合”算法

时间:2010-02-04 23:00:34

标签: algorithm combinations permutation

我将以编码员的身份完成我的学徒生涯,并且我有一个很好的j2me项目可以继续工作,但我不得不承认我对数学算法并不如我所希望的那么好。

我的问题是从一组给定的值中创建所有可能的“多米诺骨牌对”。 例如:可能的值从0到6.现在想象一些具有这些值的多米诺骨牌。输出应该是这样的:

00
01
02
03
04
05
06
11
12
13
...

每对只出现一次,但有两个相等值的对是可能的。

我已经搜索过这个问题了,但是我找不到解决这个问题的方法,或者我真的不明白这些算法的工作原理。

我真的很感激任何解释和算法。随意发布替代解决方案。我不仅希望有一个解决方案,而且还要理解它;)

1 个答案:

答案 0 :(得分:7)

伪代码:

for i from 0 to n inclusive
   for j from i to n inclusive
       output i,j

重要的是第二个循环不是从零开始。这意味着我们不必测试是否已经使用过多米诺骨牌。我们知道使用该算法生成的所有多米诺骨牌都是独特的,因为算法的构建方式。