151

29

12

37

20

192

175

53

78

110

135

118

143

126

35

158

36

19

44

174

150

84

60

134

117

142

125

101

10

189

18

43

26

149

181

59

91

116

141

124

100

132

41

164

49

25

1

180

156

90

66

147

123

99

131

107

16

195

24

7

32

155

187

65

97

122

105

130

106

138

47

170

6

31

14

186

162

96

72

104

129

112

137

113

169

5

30

13

38

168

193

71

54

128

111

136

119

144

4

176

159

184

167

45

28

102

127

61

86

69

94

77

182

11

183

166

191

27

3

133

109

85

68

93

76

52

157

42

165

190

173

2

34

108

140

67

92

75

51

83

188

17

196

172

148

33

9

139

115

98

74

50

82

58

163

48

171

154

179

8

40

114

146

73

56

81

57

89

194

23

153

178

161

39

15

145

121

55

80

63

88

64

22

152

177

160

185

21

46

120

103

79

62

87

70

95

 

 

Внимание! Оригинал.

При копировании материала прошу указывать ссылку на данную страницу.

 

МЕТОД ПОСТРОЕНИЯ МАГИЧЕСКИХ КВАДРАТОВ

 

       ЧЁТНО-НЕЧЁТНОГО ПОРЯДКА

 

       (метод четырёх квадратов)

 

 

Напомню, что магическим квадратом чётно-нечётного порядка называется квадрат порядка n=4k+2 (k=1,2,3…), то есть порядок таких квадратов делится на 2 (чётный), но не делится на 4. Первый квадрат чётно-нечётного порядка имеет порядок n=6.

С него и начну излагать свой метод построения. Разобьём квадрат 6х6 на четыре квадрата 3х3 (см. рис.1). В каждом из этих квадратов построим магические квадраты третьего порядка, но из разных чисел. Квадрат в левом верхнем углу заполним числами от 1 до 9, это обычный магический квадрат третьего порядка. Остальные три квадрата будут нетрадиционными магическими; квадрат в правом верхнем углу заполним числами от 19 до 27, в левом нижнем углу – числами от 28 до 36, в правом нижнем – числами от 10 до 18. Три нетрадиционных магических квадрата строятся автоматически; так например, квадрат в правом верхнем углу получается из основного магического квадрата третьего порядка прибавлением к числам во всех ячейках числа 18. Аналогично в двух других квадратах, только число прибавляется другое (в одном случае – 27, в другом – 9). Заполнив таким образом все четыре квадрата 3х3, внимательно посмотрим на результат. Оказывается, мы получили почти готовый магический квадрат шестого порядка. Надо только поменять местами три пары чисел: 2-29, 5-32, 4-31. На рис. 2 вы видите готовый магический квадрат шестого порядка.

 

2

7

6

20

25

24

9

5

1

27

23

19

4

3

8

22

21

26

29

34

33

11

16

15

36

32

28

18

14

10

31

30

35

13

12

17

 

                                                                                        Рис. 1   

 

29

7

6

20

25

24

9

32

1

27

23

19

31

3

8

22

21

26

2

34

33

11

16

15

36

5

28

18

14

10

4

30

35

13

12

17

 

                                                                                        Рис. 2

 

Как известно, существует 8 магических квадратов третьего порядка, получающихся друг из друга поворотами и отражениями. Если вы возьмёте другой магический квадрат и описанным способом построите магический квадрат шестого порядка, то это будет новый квадрат, который нельзя получить из первого построенного квадрата (рис. 2) ни поворотом, ни отражением. Один из таких квадратов вы видите на рис. 3.

 

31

9

2

22

27

20

3

32

7

21

23

25

35

1

6

26

19

24

4

36

29

13

18

11

30

5

34

12

14

16

8

28

33

17

10

15

 

                                                                                       Рис. 3

 

Таким образом, данным методом можно построить ещё шесть разных магических квадратов шестого порядка.

Теперь переходим к квадрату следующего чётно-нечётного порядка, десятого. Будем действовать аналогичным образом: разобьём исходный квадрат на четыре квадрата 5х5 и в каждом таком квадрате построим магический квадрат пятого порядка. При этом достаточно построить традиционный магический квадрат в левом верхнем углу, а другие (нетрадиционные) магические квадраты получатся из первого прибавлением ко всем числам в ячейках одного и того же числа; для квадрата в правом верхнем углу это число равно 50, для квадрата в левом нижнем углу – 75, для квадрата в правом нижнем углу – 25 (см. рис. 4).

 

 

3

16

9

22

15

53

66

59

72

65

20

8

21

14

2

70

58

71

64

52

7

25

13

1

19

57

75

63

51

69

24

12

5

18

6

74

62

55

68

56

11

4

17

10

23

61

54

67

60

73

78

91

84

97

90

28

41

34

47

40

95

83

96

89

77

45

33

46

39

27

82

100

88

76

94

32

50

38

26

44

99

87

80

93

81

49

37

30

43

31

86

79

92

85

98

36

29

42

35

48

 

                                                                        Рис. 4

 

Посмотрим на заполненный квадрат. Константа магического квадрата десятого порядка равна 505. Просуммировав числа в строках, столбцах и диагоналях рассматриваемого квадрата, убеждаемся, что со столбцами у нас уже всё в порядке. А вот чтобы получить константу в строках и диагоналях, надо поменять местами числа по закрашенным траекториям, то есть фигуру, состоящую из чисел 3,8,25,12,11 надо поменять местами с фигурой, состоящей из чисел 78, 83,100, 87, 86 (эти фигуры окрашены одним цветом). Точно так же столбец 15,2,19,6,23 надо поменять местами со столбцом 90,77,94,81,98, а столбец 53,70, 57, 74,61 – со столбцом 28,45,32, 49, 36 (обменивающиеся столбцы тоже одинаково окрашены).

На рис. 5 изображён готовый магический квадрат десятого порядка.

 

 

78

16

9

22

90

28

66

59

72

65

20

83

21

14

77

45

58

71

64

52

7

100

13

1

94

32

75

63

51

69

24

87

5

18

81

49

62

55

68

56

86

4

17

10

98

36

54

67

60

73

3

91

84

97

15

53

41

34

47

40

95

8

96

89

2

70

33

46

39

27

82

25

88

76

19

57

50

38

26

44

99

12

80

93

6

74

37

30

43

31

11

79

92

85

23

61

29

42

35

48

 

                                                                       Рис. 5

 

Замечание, сделанное для квадратов шестого порядка, имеет место и для квадратов десятого порядка.

Поскольку магических квадратов пятого порядка существует очень много (несколько миллионов), то и магических квадратов десятого порядка таким методом мы можем построить огромное количество.

Напрашивается вывод, что таким способом можно построить магический квадрат любого чётно-нечётного порядка. Попробуйте построить магический квадрат порядка n=14.

 

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

 

Доказательство:

 

Пусть нам надо построить магический квадрат порядка n, n – число чётное, но не кратно 4. Представим n в виде 2*m, где m будет числом нечётным. Разобьём исходный квадрат на четыре квадрата размерами mхm и в каждом из них построим магический квадрат (магический квадрат любого нечётного порядка мы строить умеем, например, методом террас) по описанной выше схеме. Пронумеруем квадраты размерами mхm: квадрат в левом верхнем углу исходного квадрата – 1-ый, в правом верхнем углу – 2-ой, в левом нижнем углу – 3-ий, а правом нижнем углу – 4-ый. Посчитаем константы всех магических квадратов порядка m, а также исходного квадрата, и покажем, что суммы по столбцам действительно равны константе исходного квадрата. Константы вычисляются по известной формуле для константы магического квадрата, которая представляет собой не что иное, как формулу для суммы n членов арифметической прогрессии. Заметим, что нетрадиционные магические квадраты 2-ой, 3-ий и 4-ый также заполнены числами, образующими арифметическую прогрессию с разностью 1.

 

S1 = (1 + m2)*m/2

S2 = [(2m2 + 1) + 3m2]*m/2 = (5m2 + 1)*m/2

S3 = [(3m2 + 1) + 4m2]*m/2 = (7m2 + 1)*m/2

S4 = [(m2 + 1) + 2m2]*m/2 = (3m2 + 1)*m/2

 

S = (1 + n2)*n/2 = (1 + 4m2)*2m/2 = (1 + 4m2)*m

 

S1 + S3 = (1 + m2)*m/2 + (7m2 + 1)*m/2 = (1 + 4m2)*m

S2 + S4 = (5m2 + 1)*m/2 + (3m2 + 1)*m/2 = (1 + 4m2)*m

 

Тем самым доказано, что суммы по столбцам уже получились. Более того:

 

S1 + S2 = m*(1 + 3m2)

S3 + S4 = m*(1 + 5m2)

 

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

 

Далее:

 

S1 + S4 = m*(2m2 + 1)

S2 + S3 = m*(6m2 + 1)

 

то есть сумма чисел по одной диагонали исходного квадрата на 2m3 меньше нужной, а по другой диагонали – на 2m3 больше нужной.

 

Докажем, наконец, что суммы чисел по горизонталям и диагоналям исходного квадрата можно выровнять (то есть привести к нужной константе), переставляя определённым образом числа в столбцах. Посмотрите ещё раз на рис. 2 и  рис. 4. Вы видите, что на рис. 2 пары чисел, которые надо поменять местами, находятся на ломаных линиях, прилегающих к левой стороне исходного квадрата и захватывающих по два диагональных числа на каждой диагонали маленького квадрата. На рис. 4 есть точно такие же ломаные линии и ещё два столбца, прилегающие к средней вертикальной линии исходного квадрата слева и справа, числа которых тоже меняются местами (эти столбцы как бы целиком переставляются). Если вы начнёте строить магический квадрат четырнадцатого порядка, то убедитесь, что порядок обмена чисел будет аналогичным, только столбцов, прилегающих к средней линии, которые надо переставить, будет уже четыре, по два с каждой стороны средней линии. Итак, закономерность прослежена. Делаем вывод: для того чтобы выровнять суммы чисел по горизонталям и диагоналям исходного квадрата порядка n=2*m, составленного из четырёх магических квадратов порядка m (m – нечётное число), надо поменять местами числа: а) расположенные на ломаных линиях, прилегающих к левой стороне квадрата и захватывающих по два диагональных числа на каждой диагонали в квадрате порядка m; б) в (m –3) столбцах, прилегающих к средней вертикальной линии исходного квадрата по (m – 3)/2 с каждой стороны.

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

Докажем высказанное утверждение о выравнивании сумм.

 

Каждое число 3-его квадрата больше соответствующего числа 1-ого квадрата на 3m2, а каждое число 4-ого квадрата меньше соответствующего числа 2-ого квадрата на m2. Следовательно, совершив указанные перестановки чисел, мы изменим сумму в каждой строке верхней половины исходного квадрата на величину:

 

                   3m2 + (m – 3)*3m2/2 – (m – 3)*m2/2

 

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

 

Теперь посмотрим, на какую величину изменится сумма по диагонали исходного квадрата, проходящей с левого верхнего угла в правый нижний. Очевидно, что она увеличится на следующую величину:

 

                   2*3m2 + (m – 3)*3m2/2 + (m – 3)*m2/2

 

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

 

Итак, мы имеем метод построения магического квадрата любого чётно-нечётного порядка n=4k+2 (k=1,2,3…), который можно назвать методом четырёх квадратов, имея в виду разбиение исходного квадрата на 4 квадрата порядка n/2.

 

Последнее замечание: чтобы у вас не возникало затруднений при построении четырёх магических квадратов порядка m=n/2, приведу общие формулы для чисел, которыми они заполняются:

 

1-ый квадрат – традиционный магический квадрат, составленный из чисел от 1 до m2. Метод для построения этого квадрата можно выбрать любой из известных для магических квадратов нечётного порядка (m у нас нечётное число);

2-ой квадрат (и все следующие) – нетрадиционный магический. Он составляется путём прибавления к числам в каждой ячейке 1-ого квадрата числа 2m2, то есть он заполняется числами от 1+2m2 до 3m2;

3-ий квадрат составляется путём прибавления к числам в каждой ячейке 1-ого квадрата числа 3m2, то есть он заполняется числами от 1+3m2 до 4m2;

4-ый квадрат составляется путём прибавления к числам в каждой ячейке 1-ого квадрата числа m2, то есть он заполняется числами от 1+m2 до 2m2.

 

Таким образом, чтобы построить магический квадрат любого чётно-нечётного порядка n, вам достаточно построить магический квадрат нечётного порядка m=n/2. А далее по очень простым формулам заполнить ещё три магических квадрата и совершить несложные перестановки чисел по определённой схеме. И магический квадрат готов!

 

Продемонстрирую ещё раз всё сказанное на примере магического квадрата 14-ого порядка.

Сначала построим 1-ый магический квадрат нечётного порядка m=7. Выберем для этого метод террас.

2-ой магический квадрат получаем прибавлением к числам 1-ого квадрата числа 2m2=98; 3-ий квадрат – прибавлением числа 3m2=147; 4-ый квадрат – прибавлением числа m2=49.

Число переставляемых столбцов равно (m –3) = 4, по два с каждой стороны средней линии исходного квадрата. На рис. 6 показан исходный квадрат четырнадцатого порядка, составленный из четырёх магических квадратов седьмого порядка, а на рис. 7 вы видите готовый магический квадрат четырнадцатого порядка (уже после перестановки чисел).

 

 

4

29

12

37

20

45

28

102

127

110

135

118

143

126

35

11

36

19

44

27

3

133

99

134

117

142

125

101

10

42

18

43

26

2

34

108

140

116

141

124

100

132

41

17

49

25

1

33

9

139

115

147

123

99

131

107

16

48

24

7

32

8

40

114

146

122

105

130

106

138

47

23

6

31

14

39

15

145

121

104

129

112

137

113

22

5

30

13

38

21

46

120

103

128

111

136

119

144

151

176

159

184

167

192

175

53

78

61

86

69

94

77

182

158

183

166

191

174

150

84

60

85

68

93

76

52

157

189

165

190

173

149

181

59

91

67

92

75

51

83

188

164

196

172

148

180

156

90

66

98

74

50

82

58

163

195

171

154

179

155

187

65

97

73

56

81

57

89

194

170

153

178

161

186

162

96

72

55

80

63

88

64

169

152

177

160

185

168

193

71

54

79

62

87

70

95

 

     Рис. 6

 

Теперь переставьте числа по закрашенной траектории слева (то есть просто поменяйте местами закрашенные фигуры) и поменяйте местами столбцы одинакового цвета. И вы получите готовый магический квадрат четырнадцатого порядка, который изображён на рис. 7.

 

 

151

29

12

37

20

192

175

53

78

110

135

118

143

126

35

158

36

19

44

174

150

84

60

134

117

142

125

101

10

189

18

43

26

149

181

59

91

116

141

124

100

132

41

164

49

25

1

180

156

90

66

147

123

99

131

107

16

195

24

7

32

155

187

65

97

122

105

130

106

138

47

170

6

31

14

186

162

96

72

104

129

112

137

113

169

5

30

13

38

168

193

71

54

128

111

136

119

144

4

176

159

184

167

45

28

102

127

61

86

69

94

77

182

11

183

166

191

27

3

133

109

85

68

93

76

52

157

42

165

190

173

2

34

108

140

67

92

75

51

83

188

17

196

172

148

33

9

139

115

98

74

50

82

58

163

48

171

154

179

8

40

114

146

73

56

81

57

89

194

23

153

178

161

39

15

145

121

55

80

63

88

64

22

152

177

160

185

21

46

120

103

79

62

87

70

95

 

    Рис. 7

 

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

 

                                               ________

 

В заключение несколько пояснений по поводу методов построения магических квадратов чётно-нечётного порядка.

Я придумала метод четырёх квадратов, который здесь изложен, в 1993 году, когда писала книгу “Компьютер решает головоломки”. В этой книге есть глава, посвящённая магическим квадратам, а в Приложении рассказывается и о некоторых методах построения магических квадратов. В журналах “Наука и жизнь” в те годы писали, что общий метод построения магических квадратов чётно-нечётного порядка неизвестен. Поэтому мне и пришлось придумать свой метод для построения таких квадратов, чтобы теория построения магических квадратов была полной.

С тех пор многое изменилось. Книга моя, конечно, так и лежит в моём портфеле среди других моих неизданных работ.

Сейчас я попала в Википедию (мировая универсальная энциклопедия) и увидела там статью “Магический квадрат”. Сделала в неё некоторые дополнения. Не вникая в методы построения, изложенные в этой статье, я поняла, что метод построения магических квадратов чётно-нечётного порядка тоже найден, возможно, и не один.

Потом мне пришло письмо от Георгия Александрова, который тоже занимается магическими квадратами. Он рассказал мне о своём шахматном методе. В свою очередь заинтересовался моим методом. Тогда я и решила опубликовать на сайте свой метод.

Замечу, что в моей книге много внимания уделяется вопросу построения магических квадратов с помощью компьютера. Составлено несколько программ на языке BASIC. С помощью компьютера я построила, например, все 880 магических квадратов четвёртого порядка.

Возможно, мы с Г. Александровым выпустим совместную монографию о магических квадратах. Есть такая идея.

 

В Википедии есть статья о магических квадратах на английском, испанском и немецком языках. Кто знает языки, смотрите здесь

 

http://en.wikipedia.org/wiki/Magic_square

http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico

http://de.wikipedia.org/wiki/Magisches_Quadrat

 

Ссылка на статью “Магический квадрат” в русской Википедии есть на странице “Магические квадраты”.

Кто знает другие языки, может поискать материал о магических квадратах в других разделах Википедии.

 

                                      ***

 

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

 

Добавление: (11 июля 2007 г.)

 

Помещаю программу для построения всех 880 магических квадратов четвёртого порядка. Она написана на языке BASIC. Каждый желающий может получить по этой программе указанные квадраты. Надо только иметь интерпретатор языка (QBASIC).

Замечу: программу надо выполнить несколько раз, с разными значениями переменной I (см. строку 10). Первый раз значение этой переменной равно 1, в этом случае вы получите все квадраты, в левой верхней ячейке которых стоит число 1. Затем измените значение переменной I на 2 (запишите строку 10 так: 10 I = 2) и снова выполните программу, вы получите все квадраты, в левой верхней ячейке которых стоит число 2, и т. д. до I=7.

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

 

ТЕКСТ ПРОГРАММЫ

 

10 I = 1

20 FOR J = 1 TO 16

30 IF J = I THEN 980

40 FOR K = 1 TO 16

50 IF K <> I THEN IF K <> J THEN 70

60 GOTO 970

70 L = 34 - I - J - K

80 IF L > I THEN IF L < 17 THEN IF L <> J THEN IF L <> K THEN 90

85 GOTO 970

90 FOR M = J + 1 TO 16

100 IF M <> I THEN IF M <> K THEN IF M <> L THEN 120

110 GOTO 960

120 FOR N = 1 TO 16

130 IF N <> I THEN IF N <> J THEN IF N <> K THEN IF N <> M THEN 150

140 GOTO 950

150 FOR O = 1 TO 16

160 IF O <> I THEN IF O <> J THEN IF O <> K THEN IF O <> L THEN IF O <> M THEN IF O <> N THEN 180

170 GOTO 940

180 FOR P = 1 TO 16

190 IF P <> I THEN IF P <> J THEN IF P <> K THEN IF P <> L THEN IF P <> M THEN IF P <> N THEN IF P <> O THEN 210

200 GOTO 930

210 IF P <> 34 - M - N - O THEN 930

220 FOR Q = 1 TO 16

230 IF Q <> I THEN IF Q <> J THEN IF Q <> K THEN IF Q <> L THEN IF Q <> M THEN IF Q <> N THEN IF Q <> O THEN IF Q <> P THEN 250

240 GOTO 920

250 U = 34 - I - M - Q

252 IF U > I THEN IF U < 17 THEN 255

253 GOTO 920

255 IF U <> J THEN IF U <> K THEN IF U <> L THEN IF U <> M THEN IF U <> N THEN 265

260 GOTO 920

265 IF U <> O THEN IF U <> P THEN IF U <> Q THEN 275

270 GOTO 920

275 FOR R = 1 TO 16

280 IF R <> I THEN IF R <> J THEN IF R <> K THEN IF R <> L THEN IF R <> M THEN IF R <> N THEN IF R <> O THEN 290

285 GOTO 910

290 IF R <> P THEN IF R <> Q THEN IF R <> U THEN IF R = 34 - L - O - U THEN 300

295 GOTO 910

300 V = 34 - J - N - R

302 IF V > 0 THEN IF V < 17 THEN 305

303 GOTO 910

305 IF V <> I THEN IF V <> J THEN IF V <> K THEN IF V <> L THEN IF V <> M THEN IF V <> N THEN IF V <> O THEN 315

310 GOTO 910

315 IF V <> P THEN IF V <> Q THEN IF V <> R THEN IF V <> U THEN 325

320 GOTO 910

325 FOR S = 1 TO 16

330 IF S <> I THEN IF S <> J THEN IF S <> K THEN IF S <> L THEN IF S <> M THEN IF S <> N THEN IF S <> O THEN 340

335 GOTO 900

340 IF S <> P THEN IF S <> Q THEN IF S <> R THEN IF S <> U THEN IF S <> V THEN 350

345 GOTO 900

350 X = 34 - K - O - S

352 IF X > 0 THEN IF X < 17 THEN 355

353 GOTO 900

355 IF X <> I THEN IF X <> J THEN IF X <> K THEN IF X <> L THEN IF X <> M THEN IF X <> N THEN IF X <> O THEN 365

360 GOTO 900

365 IF X <> P THEN IF X <> Q THEN IF X <> R THEN IF X <> S THEN IF X <> U THEN IF X <> V THEN 375

370 GOTO 900

375 Y = 34 - I - N - S

377 IF Y > I THEN IF Y < 17 THEN IF Y = 34 - U - V - X THEN 385

380 GOTO 900

385 IF Y <> J THEN IF Y <> K THEN IF Y <> L THEN IF Y <> M THEN IF Y <> N THEN IF Y <> O THEN 395

390 GOTO 900

395 IF Y <> P THEN IF Y <> Q THEN IF Y <> R THEN IF Y <> S THEN IF Y <> U THEN IF Y <> V THEN IF Y <> X THEN 405

400 GOTO 900

405 T = 34 - L - P - Y

410 IF T > 0 THEN IF T < 17 THEN IF T = 34 - Q - R - S THEN 420

415 GOTO 900

420 IF T <> I THEN IF T <> J THEN IF T <> K THEN IF T <> L THEN IF T <> M THEN IF T <> N THEN IF T <> O THEN 430

425 GOTO 900

430 IF T <> P THEN IF T <> Q THEN IF T <> R THEN IF T <> S THEN IF T <> U THEN IF T <> V THEN IF T <> X THEN IF T <> Y THEN 440

435 GOTO 900

440 PRINT I; J; K; L; M; N; O; P; Q; R; S; T; U; V; X; Y

900 NEXT S

910 NEXT R

920 NEXT Q

930 NEXT P

940 NEXT O

950 NEXT N

960 NEXT M

970 NEXT K

980 NEXT J

1000 END

 

Эту программу я написала 14 лет назад и выполняла её на ЭВМ “Электроника – 100/25”. Она выполнялась очень долго. На современном компьютере всё происходит гораздо быстрее. Попробуйте и вы сами в этом убедитесь!

Сначала я никак не могла поверить, что магических квадратов четвёртого порядка так много. И только построив все их, удостоверилась в этом. Учтите, что это все разные квадраты, то есть без учёта поворотов и отражений.

Покажу пять первых магических квадратов, построенных по этой программе:

 

1  2  15  16  12  14  3  5  13  7  10  4  8  11  6  9

1  2  15  16  13  14  3  4  12  7  10  5  8  11  6  9

1  2  16  15  13  14  4  3  12  7  9  6  8  11  5  10

1  3  14  16  10  13  4  7  15  6  11 2  8 12  5  9

1  3  14  16  12  13  4  5  15  8  9  2  6  10  7  11

 

Изображаю первые два квадрата наглядно:

 

1

2

15

16

 

1

2

15

16

12

14

3

5

13

14

3

4

13

7

10

4

12

7

10

5

8

11

6

9

8

11

6

9

 

Константа магических квадратов четвёртого порядка равна 34.

 

                                               _______

 

Добавление: (16 июля 2007 г.)

 

По просьбе Г. Александрова привожу здесь ещё одну программу, по которой можно построить на компьютере магические квадраты чётно-нечётного порядка от n=6 до n=50 изложенным здесь методом четырёх квадратов. Предварительно вам надо построить магический квадрат нечётного порядка m=n/2 любым способом, какой вам больше нравится. Затем введите по запросу программы построчно числа из этого квадрата (начиная с левой верхней ячейки), да ещё в начале программа запросит порядок чётно-нечётного квадрата, который вы собираетесь построить.  Всю остальную работу выполнит компьютер и выдаст вам готовый магический квадрат в одну секунду!

Наибольший порядок квадрата (n=50), конечно можно увеличить, введя соответствующие изменения в программу (см. строку 5).

 

ТЕКСТ ПРОГРАММЫ

 

5 DIM A(25, 25), B(50, 50)

10 PRINT "VVEDITE PORYADOK KVADRATA N"

11 INPUT N

12 PRINT

15 M = N / 2: K = M ^ 2: L = (M - 3) / 2: Q = (1 + N ^ 2) * N / 2

20 PRINT "VVEDITE POSTROCHNO MAGICHESKIJ KVADRAT PORYADKA "; M

25 FOR I = 1 TO M

30 FOR J = 1 TO M

40 INPUT A (I, J)

50 NEXT J

60 NEXT I

70 B (1, 1) = A (1, 1) + 3 * K: B (M, 1) = A (M, 1) + 3 * K

80 B (M + 1, 1) = A (1, 1): B (N, 1) = A (M, 1)

90 FOR I = 2 TO M - 1: B (I, 2) = A (I, 2) + 3 * K: NEXT I

100 FOR I = M + 2 TO N - 1: B (I, 2) = A (I - M, 2): NEXT I

110 FOR I = 2 TO M - 1: B (I, 1) = A (I, 1): NEXT I

120 FOR I = M + 2 TO N - 1: B (I, 1) = A (I - M, 1) + 3 * K: NEXT I

130 B (1, 2) = A (1, 2): B (M, 2) = A (M, 2): B (M + 1, 2) = A (1, 2) + 3 * K: B (N, 2) = A (M, 2) + 3 * K

140 FOR I = 1 TO M

150 FOR J = 3 TO M - L

160 B (I, J) = A (I, J)

170 NEXT J

180 NEXT I

190 FOR I = M + 1 TO N

200 FOR J = 3 TO M - L

210 B (I, J) = A (I - M, J) + 3 * K

220 NEXT J

230 NEXT I

240 FOR I = 1 TO M

250 FOR J = M - L + 1 TO M

260 B (I, J) = A (I, J) + 3 * K

270 NEXT J

280 NEXT I

290 FOR I = M + 1 TO N

300 FOR J = M - L + 1 TO M

310 B (I, J) = A (I - M, J)

320 NEXT J

330 NEXT I

340 FOR I = 1 TO M

350 FOR J = M + 1 TO M + L

360 B (I, J) = A (I, J - M) + K

370 NEXT J

380 NEXT I

390 FOR I = M + 1 TO N

400 FOR J = M + 1 TO M + L

410 B (I, J) = A (I - M, J - M) + 2 * K

420 NEXT J

430 NEXT I

440 FOR I = 1 TO M

450 FOR J = M + L + 1 TO N

460 B (I, J) = A (I, J - M) + 2 * K

470 NEXT J

480 NEXT I

490 FOR I = M + 1 TO N

500 FOR J = M + L + 1 TO N

510 B (I, J) = A (I - M, J - M) + K

520 NEXT J

530 NEXT I

540 FOR I = 1 TO N

550 S = 0: R = 0

560 FOR J = 1 TO N

570 S = S + B (I, J): R = R + B (I, J)

580 NEXT J

590 IF S = Q THEN IF R = Q THEN 610

600 GOTO 1000

610 NEXT I

620 S = 0: R = 0

630 FOR I = 1 TO N

640 S = S + B (I, I): R = R + B (I, N + 1 - I)

650 NEXT I

660 IF S = Q THEN IF R = Q THEN 700

670 GOTO 1000

700 PRINT "MAGICHESKIJ KVADRAT GOTOV!"

750 FOR I = 1 TO N

760 FOR J = 1 TO N

770 PRINT B (I, J);

780 NEXT J

800 NEXT I

810 GOTO 1030

1000 PRINT "MAGICHESKIJ KVADRAT NE POLUCHILSYA! PROVERTE ISHODNYE DANNYE"

1030 END

 

                                                                                                             _______

 

 

Добавление: (21 июля 2007 г.)

 

 

Георгий Александров усовершенствовал эту программу, вставив блок автоматического построения магического квадрата порядка M=N/2. Теперь достаточно ввести в программу только порядок N чётно-нечётного квадрата, который мы собираемся построить. Кроме того, Георгий открыл файл для записи построенного квадрата (см. строку 6). Построенный квадрат запишется в файл MK4k_2.txt.

Если при каждом новом выполнении программы изменять имя файла, то вы запишете каждый квадрат в свой файл.

Можно заметить, что проверка магичности квадрата в этом варианте совсем не нужна. Ошибки в построении исключены.

Вот текст программы Георгия:

 

   5 DIM A (50, 50), B (100, 100)

       6 OPEN "MK4k_2.txt" FOR OUTPUT AS #1

      10 PRINT "VVEDITE PORYADOK KVADRATA N"

      11 INPUT N

      12 PRINT

      15 M = N / 2: K = M ^ 2: L = (M - 3) / 2: Q = (1 + N ^ 2) * N / 2

      21 A (1, 1) = M - (M * M - 1) / 2

      22 FOR J = 1 TO M

      23 FOR I = 1 TO M

      24 A (I, J) = A (1, 1) + (M + 1) * (I - 1) + (M - 1) * (J - 1)

      27 NEXT I

      28 NEXT J

      29 FOR J = 1 TO M

      30 FOR I = 1 TO M

      31 IF J < (M + 3) / 2 - I THEN A (I, J) = A (I, J) + M * M

      32 IF J < I - (M - 1) / 2 THEN A (I, J) = A (I, J) - M

      33 IF J > (3 * M + 1) / 2 - I THEN A (I, J) = A (I, J) - M * M

      34 IF J > I + (M - 1) / 2 THEN A (I, J) = A (I, J) + M

      35 NEXT I

      36 NEXT J

      70 B (1, 1) = A (1, 1) + 3 * K: B (M, 1) = A (M, 1) + 3 * K

      80 B (M + 1, 1) = A (1, 1): B (N, 1) = A (M, 1)

      90 FOR I = 2 TO M - 1: B (I, 2) = A (I, 2) + 3 * K: NEXT I

      100 FOR I = M + 2 TO N - 1: B (I, 2) = A (I - M, 2): NEXT I

      110 FOR I = 2 TO M - 1: B (I, 1) = A (I, 1): NEXT I

      120 FOR I = M + 2 TO N - 1: B (I, 1) = A (I - M, 1) + 3 * K: NEXT I

      130 B (1, 2) = A (1, 2): B (M, 2) = A (M, 2): B (M + 1, 2) = A (1, 2) + 3 * K:

      B (N, 2) = A (M, 2) +3 * K

      140 FOR I = 1 TO M

      150 FOR J = 3 TO M - L

      160 B (I, J) = A (I, J)

      170 NEXT J

      180 NEXT I

      190 FOR I = M + 1 TO N

      200 FOR J = 3 TO M - L

      210 B (I, J) = A (I - M, J) + 3 * K

      220 NEXT J

      230 NEXT I

      240 FOR I = 1 TO M

      250 FOR J = M - L + 1 TO M

      260 B (I, J) = A (I, J) + 3 * K

      270 NEXT J

      280 NEXT I

      290 FOR I = M + 1 TO N

      300 FOR J = M - L + 1 TO M

      310 B (I, J) = A (I - M, J)

      320 NEXT J

      330 NEXT I

      340 FOR I = 1 TO M

      350 FOR J = M + 1 TO M + L

      360 B (I, J) = A (I, J - M) + K

      370 NEXT J

      380 NEXT I

      390 FOR I = M + 1 TO N

      400 FOR J = M + 1 TO M + L

      410 B (I, J) = A (I - M, J - M) + 2 * K

      420 NEXT J

      430 NEXT I

      440 FOR I = 1 TO M

      450 FOR J = M + L + 1 TO N

      460 B (I, J) = A (I, J - M) + 2 * K

      470 NEXT J

      480 NEXT I

      490 FOR I = M + 1 TO N

      500 FOR J = M + L + 1 TO N

      510 B (I, J) = A (I - M, J - M) + K

      520 NEXT J

      530 NEXT I

      540 FOR I = 1 TO N

      550 S = 0: R = 0

      560 FOR J = 1 TO N

      570 S = S + B (I, J): R = R +B (I, J)

      580 NEXT J

      590 IF S = Q THEN IF R = Q THEN 610

      600 GOTO 1000

      610 NEXT I

      620 S = 0: R = 0

      630 FOR I = 1 TO N

      640 S = S + B (I, I): R = R +B (I, N + 1 - I)

      650 NEXT I

      660 IF S = Q THEN IF R = Q THEN 700

      670 GOTO 1000

      700 PRINT "MAGICHESKIJ KVADRAT GOTOV!"

      750 FOR I = 1 TO N

      760 FOR J = 1 TO N

      770 PRINT #1, B (I, J);

      780 NEXT J

      790 PRINT #1,

      800 NEXT I

      810 GOTO 1030

      1000 PRINT "MAGICHESKIJ KVADRAT NE POLUCHILSYA! PROVERTE ISHODNYE DANNYE"

      1030 END

 

 

Ещё интересное замечание о методе четырёх квадратов. Я нашла статью о магических квадратах, в которой тоже рассказывается о методе четырёх квадратов для построения магических квадратов чётно-нечётного порядка. Однако это совсем другой метод! Итак, существует, по крайней мере, два метода четырёх квадратов. Выбирайте, какой вам больше нравится. Вот ссылка на указанную статью:

 

   http://www.dubovskoy.net/MAGIC/magic%20SQ.doc

 

 

                                                        ***

 

Добавление: (3 августа 2007 г.)

 

Ещё одно интересное замечание. Недавно я просматривала все книги своей домашней библиотеки, подшивки журналов “Наука и жизнь” в поисках информации о магических квадратах. Заглянула и в книгу: Б. А. Кордемский. Математическая смекалка. – Государственное издательство технико-теоретической литературы. М.: 1957.

В эту книгу я не заглядывала, наверное, лет 20. И вот на стр. 270-271 увидела построение квадрата шестого порядка методом четырёх квадратов, придуманным мной. Но в книге на квадрате шестого порядка всё и заканчивается. Метод не обобщён. Нет доказательства, что таким методом можно построить магический квадрат любого чётно-нечётного порядка. Поэтому моё описание метода четырёх квадратов считаю наиболее полным и математически доказанным.

Вполне возможно, что кто-то ещё придумал такой же метод (с обобщением и строгим доказательством) параллельно со мной. Мало ли было сделано в мире параллельных и независимых друг от друга открытий!

 

                                      ***

 

30 сентября 2007 г.

 

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

Я нашла ещё один метод построения магических квадратов шестого порядка. Вот ссылка:

 

http://www.grogono.com/magic/6x6.php

 

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

 

 

12

29

13

31

4

22

 

16

33

5

23

8

26

11

30

32

14

21

3

15

34

24

6

25

7

20

1

27

9

36

18

20

1

27

9

36

18

19

2

28

10

35

17

19

2

28

10

35

17

34

16

5

23

7

26

30

12

13

31

3

22

15

33

6

24

8

25

11

29

14

32

4

21

 

                                               Рис. 8

 

Напомню, что ассоциативным называется такой магический квадрат, в котором сумма любых двух чисел, симметрично расположенных относительно центра квадрата, равна одному и тому же числу – n2+1.

В показанных квадратах ассоциативность нарушается только для четырёх пар чисел, они расположены в закрашенной фигуре.

 

Ещё хочу привести программу для построения магических квадратов на компьютере. Когда я писала книгу “Компьютер решает головоломки”, составила много разных программ для построения магических квадратов с помощью компьютера. Одной из самых интересных является программа для построения магических квадратов шестого порядка. Сразу скажу, что эту программу очень легко приспособить для построения магических квадратов любого порядка, что я и делала, когда проводила недавние исследования квадратов разных порядков. Для этого достаточно внести в программу небольшие изменения, связанные с порядком квадрата.

В этой программе оригинальный алгоритм, основанный на использовании функции случайных чисел. С помощью этой функции выполняется составление наборов чисел по строкам квадрата. Этот этап выполняется практически мгновенно. На втором этапе числа переставляются в строках так, чтобы получить магическую сумму во всех столбцах. Этот этап выполним не для любого расклада по строкам; тогда программа снова возвращается к первому этапу и выбирает другой расклад. Если второй этап выполним, то на него затрачивается тоже несколько секунд. На последнем, третьем, этапе строки квадрата переставляются так, чтобы получить магические суммы по обеим диагоналям. Этот этап тоже не всегда выполним. Если же нужные наборы чисел в диагоналях составляются, то магический квадрат готов. С третьим этапом программа справляется в течение 40-50 секунд. Таким образом, менее чем за минуту по этой программе строится магический квадрат шестого порядка. Вероятность того, что при многократном выполнении программы построятся два одинаковых квадрата, ничтожно мала. Можно зациклить программу, то есть после построения одного квадрата переходить на построение следующего квадрата. Тогда вы можете построить столько квадратов, сколько вам захочется (можно поставить счётчик). Вот эта программа:

 

ТЕКСТ ПРОГРАММЫ

 

10 DIM A(6, 6), B(36), C(6, 6), D(5)

15 RANDOMIZE TIMER

20 PRINT "NACHALO 1 ETAPA": PRINT

25 FOR I = 1 TO 36: B(I) = I: NEXT I

30 I = 1: W = 36: GOSUB 1000

50 I = 2: W = 30: GOSUB 1000

70 I = 3: W = 24: GOSUB 1000

90 I = 4: W = 18: GOSUB 1000

110 I = 5: W = 12: GOSUB 1000

130 FOR M = 1 TO 6: A(6, M) = B(M): NEXT M

140 PRINT "RASKLAD PO STROKAM GOTOV!": PRINT

141 FOR I = 1 TO 6: PRINT A(1, I); : NEXT I

142 FOR I = 1 TO 6: PRINT A(2, I); : NEXT I

143 FOR I = 1 TO 6: PRINT A(3, I); : NEXT I

144 FOR I = 1 TO 6: PRINT A(4, I); : NEXT I

145 FOR I = 1 TO 6: PRINT A(5, I); : NEXT I

146 FOR I = 1 TO 6: PRINT A(6, I); : NEXT I

147 GOTO 3500

1000 FOR J = 1 TO 5

1020 K = INT(RND * W + 1): A(I, J) = B(K)

1030 NEXT J

1040 A(I, 6) = 111 - A(I, 1) - A(I, 2) - A(I, 3) - A(I, 4) - A(I, 5)

1050 IF A(I, 6) > 0 THEN IF A(I, 6) < 37 THEN 1070

1060 GOTO 1000

1070 Z = 0

1080 FOR M = 1 TO W

1090 IF A(I, 6) = B(M) THEN Z = 1

1100 NEXT M

1110 IF Z = 0 THEN 1000

1120 X = 0

1130 FOR P = 1 TO 6

1140 FOR T = 1 TO 6 - P

1150 IF A(I, P) = A(I, P + T) THEN X = 1

1160 NEXT T

1170 NEXT P

1180 IF X = 1 THEN 1000

1190 FOR P = 1 TO 6

1200 FOR Q = 1 TO W

1210 IF B(Q) = A(I, P) THEN B(Q) = 0

1220 NEXT Q

1230 NEXT P

1500 Z = 1

1505 FOR M = 1 TO W

1510 IF B(M) > 0 THEN B(Z) = B(M): Z = Z + 1

1515 NEXT M

1520 RETURN

3200 FOR I = 1 TO 6

3210 FOR J = 1 TO 6

3220 PRINT C(I, J);

3230 NEXT J

3235 PRINT

3240 NEXT I

3245 PRINT : PRINT "KVADRAT POSTROEN!": GOTO 5000

3500 PRINT "NACHALO 2 ETAPA"

3502 FOR M = 1 TO 6

3505 FOR I = 1 TO 6

3510 O = A(1, I)

3520 IF O > 0 THEN 3540

3530 GOTO 3825

3540 FOR J = 1 TO 6

3550 P = A(2, J)

3560 IF P > 0 THEN 3580

3570 GOTO 3820

3580 FOR K = 1 TO 6

3585 Q = A(3, K)

3590 IF Q > 0 THEN 3600

3595 GOTO 3815

3600 FOR L = 1 TO 6

3605 R = A(4, L)

3610 IF R > 0 THEN 3620

3615 GOTO 3810

3620 FOR X = 1 TO 6

3625 S = A(5, X)

3630 IF S > 0 THEN 3640

3635 GOTO 3805

3640 FOR N = 1 TO 6

3645 T = A(6, N)

3650 IF T > 0 THEN 3660

3655 GOTO 3800

3660 IF O + P + Q + R + S + T = 111 THEN 3670

3665 GOTO 3800

3670 FOR Y = 1 TO 6

3675 FOR Z = 1 TO 6

3680 IF A(Y, Z) <> O THEN IF A(Y, Z) <> P THEN IF A(Y, Z) <> Q THEN IF A(Y, Z) <> R THEN IF A(Y, Z) <> S THEN IF A(Y, Z) <> T THEN 3686

3685 A(Y, Z) = 0

3686 NEXT Z

3687 NEXT Y

3688 C(1, M) = O: C(2, M) = P: C(3, M) = Q: C(4, M) = R: C(5, M) = S: C(6, M) = T

3690 FOR Y = 1 TO 6: PRINT C(Y, M): PRINT : NEXT Y

3700 PRINT : GOTO 3850

3800 NEXT N

3805 NEXT X

3810 NEXT L

3815 NEXT K

3820 NEXT J

3825 NEXT I

3830 GOTO 20

3850 NEXT M

3851 PRINT "NACHALO 3 ETAPA": PRINT

3852 FOR I = 1 TO 6

3855 FOR J = 1 TO 6

3860 A(I, J) = C(I, J)

3865 NEXT J

3870 NEXT I

4000 FOR I = 1 TO 6

4005 FOR J = 1 TO 6

4010 IF I = J THEN 4540

4015 FOR K = 1 TO 6

4020 IF K <> I THEN IF K <> J THEN 4030

4025 GOTO 4530

4030 FOR L = 1 TO 6

4035 IF L <> I THEN IF L <> J THEN IF L <> K THEN 4045

4040 GOTO 4520

4045 FOR M = 1 TO 6

4050 IF M <> I THEN IF M <> J THEN IF M <> K THEN IF M <> L THEN 4060

4055 GOTO 4510

4060 FOR N = 1 TO 6

4065 IF N <> I THEN IF N <> J THEN IF N <> K THEN IF N <> L THEN IF N <> M THEN 4075

4070 GOTO 4500

4075 FOR P = 1 TO 6

4080 C(1, P) = A(I, P)

4085 C(2, P) = A(J, P)

4090 C(3, P) = A(K, P)

4095 C(4, P) = A(L, P)

4097 C(5, P) = A(M, P)

4100 C(6, P) = A(N, P)

4102 NEXT P

4105 Z = 0: Z1 = 0

4110 FOR O = 1 TO 6

4115 Z = Z + C(O, O): Z1 = Z1 + C(O, 7 - O)

4120 NEXT O

4125 IF Z = 111 THEN IF Z1 = 111 THEN 3200

4500 NEXT N

4510 NEXT M

4520 NEXT L

4530 NEXT K

4540 NEXT J

4550 NEXT I

4560 GOTO 20

5000 END

 

Если вы будете строить много квадратов, можно открыть файл для их записи. Покажу два магических квадрата, построенных мной по данной программе ещё на ЭВМ “Электроника-100/25”; беру их из рукописи моей книги “Компьютер решает головоломки”. В рукописи написано, что на построение одного квадрата ЭВМ требовалось 40-45 минут! На компьютере квадрат строится, как я уже сказала, за одну минуту. Вот какая разница в быстродействии. Итак, смотрите магические квадраты, построенные 14 лет назад на старенькой ЭВМ (рис. 9).

 

 

7

33

3

20

31

17

 

32

30

18

4

16

11

21

14

8

1

35

32

15

28

14

12

8

34

30

25

34

5

2

15

13

7

19

29

17

26

16

23

29

27

6

10

23

1

5

20

27

35

24

12

9

36

11

19

6

36

31

25

10

3

13

4

28

22

26

18

22

9

24

21

33

2

 

                                           Рис. 9

 

                                               _______

 

Смотрите далее: Пандиагональные квадраты.

 

       Пишите мне!

Рейтинг@Mail.ru

На главную страницу



Сайт создан в системе uCoz