Алгоритм генерации матричной игры с перекрестными суммами - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь сгенерировать матрицу, как для игры с перекрестными суммами, где в матрице случайных чисел для заданной суммы (или произведения, в зависимости от выбранной операции) для каждой строки и столбца,есть ровно 1 способ «деактивировать» (то есть исключить число из конечной суммы или произведения) правильные числа, чтобы каждая строка и столбец заканчивали суммированием активных чисел до правильной суммы.

Чтобы проиллюстрировать этоскажем, у меня есть матрица 3x3, и выбранные суммы (числа, следующие за *, представляют сумму):

   *12* *5*  *3*
4*  1    2    3  *4

9*  4    5    6  *9

7*  7    8    9  *7

Чтобы решить эту проблему, мне нужно деактивировать числа 2, 6, 9 и 8..

Один из способов сгенерировать матрицу с необходимой суммой - просто сгенерировать числа, а затем выбрать, какие из них исключить случайным образом.Однако недостатком является то, что для больших матриц, таких как 7x7, 8x8, есть вероятность того, что будет более 1 решения.

Другое решение, о котором я думаю, - исключить числа, которые можно сложитьдругой для каждой строки / столбца.Например, если требуемая сумма равна 5, то 4 2 1 3 будет недопустимым из-за (4 + 1 и 3 + 2), но это кажется довольно сложным и неэффективным.

Если у кого-либо есть какие-либо указатели, я 'Я очень ценю это.Кажется, это решенная проблема, но я понятия не имею, что искать.

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