Проблема с уравнением в Java - PullRequest
0 голосов
/ 09 марта 2012

В настоящее время я работаю над 15 играми-головоломками для Android для школы. К сожалению, я столкнулся с проблемой.

Мне нужно переписать это уравнение, чтобы получить из него строку и столбец вместо индекса. Посмотрите на код и посмотрите, если вы, ребята, можете мне помочь!

Это займет строку и столбец и вернет мне соответствующий индекс.

int index = 4 * (row - 1) + (column - 1);

Однако теперь я хотел бы превратить индекс в строку и столбец. Так кто-нибудь знает, как перевернуть это уравнение, чтобы вернуть строку и столбец в два разных целых числа.

Спасибо, Микаэл

Ответы [ 3 ]

5 голосов
/ 09 марта 2012

Попробуйте это:

row = index / 4 + 1;
column = (index % 4) + 1;

Обратите внимание, что это (и оригинальная формула) работает только в том случае, если column < 5 (что, конечно, для 15 головоломок).

1 голос
/ 09 марта 2012

Попробуйте нарисовать его для массива и посмотреть, сможете ли вы выяснить шаблон. Посмотрите, что делает индекс, когда вы двигаетесь вниз по ячейке или двигаетесь вправо на единицу.

Обратите внимание, что индексы на изображении ниже основаны на 1, но для массива java вам понадобятся индексы на основе 0.

indices of a 2d array

0 голосов
/ 09 марта 2012

Взгляните на эту страницу Система линейных уравнений .В вашем случае у вас есть две неизвестные переменные (строка и столбец) и только одно уравнение, поэтому вы можете иметь более одного решения (пару значений) для строки и столбца.Обратите внимание, что в вашем случае у вас также есть ограничение относительно значений строки и столбца, так как это индексы массива.

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