Работая над темой обхода конём шахматной доски я обязан был проверить: не возникает ли магический квадрат при таком движении коня, если поля отмечать номером хода?
Напомню: задача о коне, это задача обойти всю доску конём, попадая на каждое из полей только один раз.
Вот в качестве примера обход конём доски размаром 5х5 клеток из Википедии и его перенумеровки - внизу и справа указаны суммы в столбцах и строках.
Исходная нумерация полей
01_15_04_09_20___49
05_10_19_14_03___51
16_25_02_21_08___72
11_06_23_18_13___71
24_17_12_07_22___82
57_73_60_69_66
Нумерация полей получаемая путём программной перенумерации:
02_16_05_10_21___54
06_11_20_15_04___56
17_01_03_22_09___52
12_07_24_19_14___76
25_18_13_08_23___87
62_53_65_74_71
Обратим внимание, что вслед за 25 идет снова номер 1.
Третья расстановка - после второй программной перенумерации:
03_17_06_11_22___59
07_12_21_16_05___61
18_02_04_23_10___57
13_08_25_20_15___81
01_19_14_09_24___67
42_58_70_79_76
И так далее!
Уже теперь я написал небольшую программу для Эксцелл-таблиц, которая каждый раз позволяет перенумеровывать поля, проверяя - нет ли для изучаемого узора подходящего типа нумерации ходов.
Sub номераходовконя()
For y = 2 To 6
For x = 2 To 6
Cells(x, y).Value = Cells(x, y).Value + 1
If Cells(x, y).Value = 26 Then Cells(x, y).Value = 1
Next x
Next y
End Sub
На каждой итерации мы получаем новую расстановку номеров и новые суммы в строках и столбцах, поскольку в этих клетках расположены формулы сумм соответствующих пяти полей.
Когда я был, скажем мягенько, моложе, не было у меня ни компьютера, ни Эксцелля, ни навыков программирования, и всю черновую работу приходилось делать вручную.
Вот на эти математические изыскания и ушло некоторое время моей непутёво прожитой жизни.
Воспоминания Олигофрена. Моя математика
7 октября 20207 окт 2020
11
1 мин