动态矩阵生成器类

时间:2012-07-06 14:54:55

标签: java android algorithm dynamic matrix

我需要一个动态矩阵生成器类,它会返回int[4][4]矩阵,值应介于1到16之间不会有重复值。

Matrix解决方案将是这样的:

enter image description hereenter image description here

如果仔细观察矩阵图像,那么你会发现每个矩阵在矩阵值的位置都有一个特定的逻辑/模式。什么是模式并不重要,但维持模式重要意味着应该存在任何类型的模式)。目前我使用的静态代码如下:

// for the second image    
int temp4[][] = { { 1, 2, 3, 4 }, { 12, 13, 14, 5 },
                        { 11, 16, 15, 6 }, { 10, 9, 8, 7 } }; 

目前我有3/4静态模式,但静态实现这是一个糟糕的方法,因此它应该是动态的,因为我需要随机模式运行时。

所以我的问题是:是否可以制作这样的解决方案?什么是代码?? 如果您知道与此相关的链接,请发布或发布原始代码。

提前致谢。


更新

这个问题的模式意味着什么?

如果你仔细按照第一个矩阵,你会发现数字就像第一行:1,2,3,4然后第二行:5,6,7,8等等..

对于第二个矩阵,它的第一行是1,2,3,4然后它下降为5,6,7然后返回到8,9,10 ans等等。

另一种模式可能就像第一列:1,2,3,4然后第二列:5,6,7,8所以矩阵看起来像:

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16 ..等等

因此我需要一个矩阵生成器,它将返回int[4][4]非重复值,从1到16,值应按顺序排列。另一种模式可能是:

enter image description hereenter image description here

以上2的模式是这样的:

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的更新,我会为每个模式创建一个策略。在每种模式中,您可以选择起点,方向,升序或降序(如果允许)

一旦你有一套模式,你可以随机选择一个模式,然后随机选择它,或者生成每个可能的模式并随机选择一个模式。


您可以使用Collections.shuffle()

以随机顺序生成非重复值

然后,您可以测试矩阵,看它是否有足够的图案或是否可以接受。如果没有,请重复直到你这样做。