我将完成作为编码员的学徒制,我得到了一个不错的J2ME项目,但是我必须承认,我对数学算法并不像我想要的那样好。

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

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

每对仅出现一个时间,但对具有两个相等值的对对。

我已经搜索了这个问题,但是要么我找不到解决这个特定问题的解决方案,要么我真的不了解算法如何工作。

我非常感谢任何解释和算法。也可以随意发布替代解决方案。我宁愿不仅有解决方案,而且还要理解它;)

有帮助吗?

解决方案

伪代码:

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

重要的一点是第二个循环并非从零开始。这意味着我们不必测试是否已经使用了多米诺骨牌。我们知道,使用该算法生产的所有多米诺族都是唯一的,因为算法的构造方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top