syrcov.andrei

Зарегистрирован с 24.04.2020
Комментарии
24 апреля 2020

Решил задачу сначала на бумаге, затем обнаружил, что если идти задом наперёд, от выключенных к включённым, то (считая справа) первый выключатель нажимается каждые 2 шага, второй - каждые 4, третий - каждые 8 и т.д. Написал программу на Python, которая считает количество шагов для любого n. Работает, она, однако, только для нечётных n, но я полагаю, что в чётных она просто делает два лишних шага, то есть, из ответа нужно будет просто вычесть 2.

from math import pow def switch(x): if x==0: return 1 if x==1: return 0

n=int(input('Введите количество выключаетелей: ')) a=[] a1=[] b=[] for i in range(n-1): a.append(0) a1.append(1) b.append(int(pow(2,i))) a.append(1) a1.append(1) b.append(int(pow(2,i+1))) b.append(int(pow(2,i+2)))

k=1 i=0

while (a!=a1): for i in range(n): if (k%b[n-i]-b[n-i-1]==0): a[n-n+i]=switch(a[n-n+i]) k=k+1 break print(a) print(k)

Ответить