serzh1425
08.12.2020 08:27

N, flag, right, down, left, up, a, e, c, d, z, i, j=int(input()), 'r', 'r', 'd', 'l', 'u', 0, 1, 1, 0, 1, 0, 0 b=[[0]*n for i in range(n)]#Матрица нужного размера
if n != 0 and n != 1:
while a <= n**2:
while flag==right:
if b[i][n-e]==0:
b[i][d]=b[i][d]+c
c, d, a = c+1, d+1, a+1 #Плюсуем переменные c-Счетчик, a-для цикла(Тоже счетчик
else: flag, d=down, z
while flag==down:
if b[n-e][n-e]==0:
b[d][n-e]=b[d][n-e]+c
c, d, a = c+1, d+1, a+1#Плюсуем переменные c-Счетчик, a-для цикла(Тоже счетчик
else: flag, d=left, z
while flag==left:
if b[n-e][j]==0:
b[n-e][n-(d+1)]=b[n-e][n-(d+1)]+c
c, d, a = c+1, d+1, a+1#Плюсуем переменные c-Счетчик, a-для цикла(Тоже счетчик
else: flag, d=up, z
while flag==up:
if b[e][j]==0:
b[n-(d+1)][j]=b[n-(d+1)][j]+c
c, d, a = c+1, d+1, a+1#Плюсуем переменные c-Счетчик, a-для цикла(Тоже счетчик
else: d, z, i, j, e, flag = z, z+1, i+1, j+1, e+1, right# Плюсуем ивозвращаем некоторые переменные
a+=1# Счетчик для цикла
print(z)
if n%2 == 0 and n>3:
b[n-z][n-z]=n**2
for v in b:
for q in v: print(q, end=' ')
print()
elif n ==1: print(1)
elif n == 0: print(0)
Вот код(Он очень гавеный:))
Когда input 16 Середина не заполняется числами почему ?
Суть
Выведите таблицу размером n×n, заполненную числами от 1 до n^2n
по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
geralump
20.09.2020 18:38

Есть несколько алгоритмов решения такой задачи.

Прямой перебор - попытка перебрать всевозможные последовательности этих команд и посмотреть, какие из них, примененные к 1 сделают из нее 16 - но это долгий , оценка сложности сверху без короткой схемы - это 3^15 таких последовательностей (сколько всего команд) ^ (максимально возможное число команд в подходящей программе, это 15 прибавлений по единичке).

Можно развить подход "от противного", который лежит в основе идей динаимического программирования: обозначив n(x) - какое количество различных программ преобразую число 1 в x, получаем формулу для исходного n(16) = n(15) + n(12) = (n(14) + n(11) + n(5)) + (n(11) + n(8) + n(4)) = ...

Будем считать, что n(1) = 1

Тогда вот функция на питоне для подсчёта искомого числа. Вызов n(16) вернёт результат 136

def n(x):

   if x < 1: return 0

   elif x == 1: return 1

   else: return n(x - 1) + n(x - 4) + (0 if x % 3 != 0 else n(x // 3))

У такого подхода есть несомненное преимущество: его не только проще написать, но и сложность его O(n)

0,0(0 оценок)
Ответ:
Alinamail02
01.09.2020 08:48

Объяснение:

13. температура от 0 до 63 - всего 64 значения. Для кодирования 64 значений достаточно 6 бит (потому что 2⁶=64). 6 бит на одно измерение, всего 10 измерений, тогда информационный объем 6*10=10 бит

14. алфавит содержит 16 символов. для кодировки каждого достаточно 4 бита (потому что 2⁴=16) В сообщении 3 символа, каждый кодирован 4 битами, тогда общий объем информации 3*4=12 бит.

15. Звуковой файл записан с частотой 16000 Гц, разрешением 8 бит,  2 канала и длительность 1 минута.

То есть каждую секунду  берется 16000 отсчетов и каждое значение кодируется 8 битами, получаем 16000*8=128000 бит за 1 секунду записи. Но каналов 2 - тогда за 1 секунду записи получаем 128000*2=256000 бит информации.  Всего длительность записи 1 минута=60 сек. Общий объем информации будет 256000*60=15360000 бит, или 15360000/8=1920000 байт, или 1920000/1024=1875 кБ.

Такого ответа нет, возможно ошибка.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота