1

我将如何在 java 中编写一个函数来生成所有 3*3 多维数组,以使 1...9 之间的每个数字只出现一次?

谢谢!

4

3 回答 3

5

基本上,您正在寻找 series 的所有排列[1, 2, ... 9],但请注意您将它们拆分为3x3.

很容易在数学上证明排列的数量是9!(阶乘 9)。

有许多算法可以生成排列。选择您认为最方便的一种。例如,在 wikipedia 上

于 2009-04-05T10:42:05.757 回答
0

注意:根据 OP,这实际上不是作业。

你走了多远?这听起来像家庭作业,这很好,所以可能会有所帮助,但你应该向我们展示你做了多少。SO 是关于培养更好的程序员,所以向我们展示你能做什么,我们会提供帮助

于 2009-04-05T10:37:38.233 回答
0

我会从小处着手,您将如何处理 2*2 阵列?手动进行 - 即开始写下所有可能的 2*2 数组。你怎么做呢?然后想想如何在代码中做到这一点。如果您以 2*2 的方式执行此操作,您应该能够通过肉眼看到您的结果是否看起来不错,这样您就会知道您是否走在正确的轨道上。

这基本上是一个排列问题,一旦你弄清楚了小数字,相同的解决方案应该可以扩展。

于 2009-04-05T10:42:43.807 回答