генерировать все 3 * 3 двухмерных массива - PullRequest
1 голос
/ 05 апреля 2009

Как мне написать функцию в Java, которая генерирует все 3 * 3 многомерных массивов, так что каждое число от 1 до 9 появляется только один раз?

спасибо!

Ответы [ 3 ]

5 голосов
/ 05 апреля 2009

По сути, вы ищете все перестановки серии [1, 2, ... 9], но обратите внимание, что вы разбили их до матрицы 3x3.

Математически легко доказать, что число перестановок равно 9! (факториал 9).

Существует множество алгоритмов для генерации перестановок. Выберите тот, который вы считаете наиболее удобным. Например, в Википедии .

0 голосов
/ 05 апреля 2009

Я бы начал с малого, как бы вы сделали это для 2 * 2 массивов? Сделайте это вручную - то есть начните записывать все возможные 2 * 2 массива. Как ты делаешь это? Затем подумайте, как вы можете сделать это в коде. Если вы сделаете это за 2 * 2, вы сможете увидеть, хорошо ли выглядят ваши результаты, чтобы вы знали, на правильном ли вы пути.

Это, по сути, проблема перестановки, когда вы вычислите ее для небольших чисел, масштабирование будет одинаковым.

0 голосов
/ 05 апреля 2009

Примечание: на самом деле это не домашняя работа согласно ОП.

Как далеко вы продвинулись? Это звучит как домашнее задание, и это нормально, так что, вероятно, поможет, но вы должны показать нам, сколько вы сделали. Так что о том, как сделать программистов лучше, так что покажите нам, что вы можете сделать, и мы поможем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...