我将以编码器的形式完成我的学徒生涯,并且我有一个很好的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
重要的是第二个循环不是从零开始。这意味着我们不必测试是否已经使用过多米诺骨牌。我们知道使用该算法生成的所有多米诺骨牌都是独特的,因为算法的构造方式。