Для начала считаем кол-во цифр в данном сообщении: 7. Значит получается, что максимальное кол-во букв с двойным обозначением (тобиш в и г) тут 3, т.к 4 - уже 8 цифр. Можно рассмотреть все 4 случая: 1) все 7 - буквы буквы с одной цифрой (а и б) - 1 вариант расположения (очевидно) 2) 1 буква - в или г: эту одну букву можно расположить 7-1 = 6 вариантами, то есть еще + 6 3) 2 буквы - в или г. Для выбора местоположения первой из этих букв есть 6 вариантов расположения (как мы уже поняли из 2) ), а для второго остается 7-2= 5 цифр, а значит 4 позиции. Итого 5*4 = 20 и делим это пополам, ибо половина случаев - симметрична (просто меняются местами двойные буквы - а нам без разницы). Получается 20/2= 10 4) 3 буквы - буквы в или г: Рассмотрим от оставшейся одиночной буквы: у нее есть 7 вариантов расположения, вот и все. 1+6+10+7 = 24
1) все 7 - буквы буквы с одной цифрой (а и б) - 1 вариант расположения (очевидно)
2) 1 буква - в или г: эту одну букву можно расположить 7-1 = 6 вариантами, то есть еще + 6
3) 2 буквы - в или г. Для выбора местоположения первой из этих букв есть 6 вариантов расположения (как мы уже поняли из 2) ), а для второго остается 7-2= 5 цифр, а значит 4 позиции. Итого 5*4 = 20 и делим это пополам, ибо половина случаев - симметрична (просто меняются местами двойные буквы - а нам без разницы). Получается 20/2= 10
4) 3 буквы - буквы в или г: Рассмотрим от оставшейся одиночной буквы: у нее есть 7 вариантов расположения, вот и все.
1+6+10+7 = 24
Program F90
integer i, j, k, s /0/, x/2/, y/6/, a(7, 7)
do k = 1, 4
do i = x - 1, y + 1
s = s + 1
a(x - 1, i) = s
end do
i = y + 1
do j = x, y + 1
s = s + 1
a(j, i) = s
end do
do i = y, x - 1, -1
s = s + 1
a(y + 1, i) = s
end do
i = x - 1
do j = y, x, -1
s = s + 1
a(j, i) = s
end do
x = x + 1
y = y - 1
end do
Print *, 'massive 15 = '
Write(*, '(7i5)') ((a(i, j), j=1, 7), i=1, 7)
End Program