Личный онлайн дневник «Vрасцвете»

Проблемы? Писать СЮДА.                                       Правила сайта ЗДЕСЬ.

2. Поиск оптимального МК

0
Голосов: 0
Автор: fedorov
Опубликовано: 1587 дней назад (23 декабря 2019)
Редактировалось: 10 раз — последний 23 декабря 2019
Итак, вторая программа:

open #1,"FEDOROV.txt","r"
open #2,"FEDOROV0.txt","w"
print #2," ";:for i=1 to 10:print #2,i using "###";:next i
print #2
print #2,"----------------------------------------------"
print #2," 0| ";
dim v(1000)
maxim=1
input #1 n,mag
print n,mag
for p=1 to n
print p;
s=0:s1=0
input #1 nn
for t=1 to 16
input #1 v(t)
print v(t)
next t
for x=1 to 13
for y=x+1 to 14
for z=y+1 to 15
for w=z+1 to 16
s1=s1+1
if v(x)+v(y)+v(z)+v(w)=mag then s=s+1
fi
next w
next z
next y
next x
if p/10=int(p/10) then
No=No+1:print #2,s:print #2,No using "##";:print #2,"| ";
else print #2,s;:print #2," ";:fi
if s>maxim then nom=p:fi
if s>maxim then maxim=s:fi
next p
print #2
print #2, "------------------------"
print #2, nom,maxim

После ее выполнения, в текстовом файле ,"FEDOROV0.txt" образуется симпатичная таблица:

.... 1 . 2 . 3 . 4 . 5. 6 . 7.. 8... 9. 10
-----------------------------------------------------
0| 46 44 39 47 40 46 56 39 60 40
1| 52 41 50 60 38 40 56 72 46 42
2| 38 52 66 50 40 40 60 56 38 52
3| 42 45 44 60 58 48 48 46 60 43
4| 40 52 49 44 64 52 49 50 51 45
5| 43 50 58 46 47 41 52 46 44 51
6| 56 50 46 42 40 42 42 42 44 49
7| 42 60 46 52 47 42 43 60 43 40
8| 41 56 60 48 48 42 52 44 44 66
9| 41 40 41 56 46 42 46 43 44 43
10| 42 46 50 42 51 45 43 44 45 45
11| 43 42 51 39 66 42 40 42 44 40
12| 42 52 45 60 42 42 42 40 44 60
13| 43 41 50 43 52 46 60 47 41 46
14| 50 42 45 48 45 44 44 45 45 45
15| 48 44 46 52 52 43 44 41 40 42
16| 39 64 42 47 42 42 42 40 60 49
17| 47 40 43 39 40 41 60 52 39 44
18| 40 40 43 41 46 40 60 49 40 48
19| 42 46 46 42 41 44 44 42 46 42
20| 48 42 43 46 42 40 40 46 46 66
21| 46 52 53 42 42 38 42 40 43 42
22| 44 42 72 46 41 42 41 50 44 48
23| 46 44 48 46 60 46 42 40 40 39
24| 39 42 44 60 52 44 38 49 48 43
25| 40 38 40 42 38 48 38 42 50 42
26| 40 38 43 38 38 50 42 36 45 44
27| 44 44 41 44 40 40 37 46 46 43
28| 44 40 42 38 44 44 45 38 46 43
29| 37 39 41 42 48 43 44 46 46 41
30| 40 40 40 37 38 42 42 40 46 38
31| 44 40 44 42 42 42 42 46 40 40
32| 42 38 41 47 44 40 40 38 38 40
33| 40 44 40 38 38 39 41 50 40 42
34| 44 40 46 40 36 46 42 42 38 44
35| 38 38 38 39 38 44 42 40 40 40
36| 42 40 38 39 42 39 43 44 38 40
37| 46 50 40 39 40 40 40 38 44 44
38| 40 40 38 38 41 39 40 39 42 38
39| 38 40 40 40 36 36 40 37 36 38
40| 45 42 44 40 40 45 38 40 38 36
41| 39 37 38 42 38 38 40 40 37 38
42| 40 38 37 38 40 38 38 37
------------------------
18 72

В самом конце - номер варианта оптимального магического квадрата, то есть 18, и наибольшее количество магических сумм, которые дает данный вариант, то есть 72 магические суммы (как мы помним, они равны 114). И действительно, в таблице в строке 1 и в столбце 8 видим число 72.
Этот магический квадрат копируем в отдельный текстовой файл с именем "FEDOR72.txt" следующим образом:


16 114
31 12 19 52
17 54 33 10
40 3 24 47
26 45 38 5


Здесь 16 - это общее количество ячеек в матрице 4х4, а 114 - магическая сумма.

И осталось запустить третью программу:


open #1,"FEDOR72.txt","r"
open #2,"SUM72.txt","w"
dim v(100)
input #1 n,mag
for t=1 to n
input #1 v(t)
print v(t)
next t
for x=1 to n-3
for y=x+1 to n-2
for z=y+1 to n-1
for w=z+1 to n
s1=s1+1
if v(x)+v(y)+v(z)+v(w)=mag then s=s+1
print #2, s,v(x),v(y),v(z),v(w)
fi
next w
next z
next y
next x
print "---------------------------"
print s1
print #2,s,s1

Получим таблицу всех 72 магических сумм:

1 31 12 19 52
2 31 12 17 54
3 31 12 33 38
4 31 12 24 47
5 31 12 26 45
6 31 19 17 47
7 31 19 54 10
8 31 19 40 24
9 31 19 26 38
10 31 52 26 5
11 31 17 40 26
12 31 54 3 26
13 31 54 24 5
14 31 33 10 40
15 31 33 3 47
16 31 33 24 26
17 31 33 45 5
18 31 10 47 26
19 31 40 38 5
20 12 19 45 38
21 12 52 17 33
22 12 52 10 40
23 12 52 3 47
24 12 52 24 26
25 12 52 45 5
26 12 17 40 45
27 12 17 47 38
28 12 54 10 38
29 12 54 3 45
30 12 33 24 45
31 12 10 47 45
32 12 40 24 38
33 19 52 17 26
34 19 52 33 10
35 19 52 40 3
36 19 52 38 5
37 19 17 54 24
38 19 17 33 45
39 19 17 40 38
40 19 54 3 38
41 19 33 24 38
42 19 10 40 45
43 19 10 47 38
44 19 3 47 45
45 19 24 26 45
46 52 17 40 5
47 52 54 3 5
48 52 33 3 26
49 52 33 24 5
50 52 10 47 5
51 17 54 33 10
52 17 54 40 3
53 17 54 38 5
54 17 33 40 24
55 17 33 26 38
56 17 10 40 47
57 17 24 47 26
58 17 47 45 5
59 54 33 3 24
60 54 10 3 47
61 54 10 24 26
62 54 10 45 5
63 33 10 24 47
64 33 10 26 45
65 33 40 3 38
66 10 40 26 38
67 40 3 24 47
68 40 3 26 45
69 40 24 45 5
70 3 47 26 38
71 24 47 38 5
72 26 45 38 5

Если их перевести на график, то получим такую интересную вещь:

2. Поиск оптимального МК


Тут 72 варианта суммирования четырех желтых ячеек. Например, рассмотрим самый последний вариант (правый нижний угол).
Суммируются числа лучшего МК: 40+26+38+10=114. То есть как раз магическая сумма!

Такой вот красочный мой лучший магический квадрат;


2. Поиск оптимального МК


Надо отметить, что абсолютный максимум числа магических квадратов 4х4 равен 86. Это только в случае, если все 16 чисел ячеек образуют арифметическую прогрессию. Но у нас верхняя строка совершенно случайная и потому вероятность появления отмеченных чисел весьма малая. Однако, мой друг Гоша отметил, что в его практике число вариантов 428 и число магических сумм встретились впервые, так как являются рекордными.
429 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!