23.04 Количество программ из A в B где траектория вычислений НЕ содержит число(-а)
Ошибка.
Попробуйте повторить позже
У исполнителя КРАБИК три команды, которым присвоены номера:
1. прибавь 1
2. прибавь 5
3. умножь на 2
Первая из них увеличивает на 1 число на экране, вторая увеличивает это число на 5, третья - увеличивает это число в 2 раза.
Программа для КРАБИКА — это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 16, но не проходят через число 10?
def f(x, y): if x == y: return 1 if x > y or x==10: return 0 return f(x + 1, y) + f(x + 5, y) + f(2 * x , y) print(f(2, 16))
Ошибка.
Попробуйте повторить позже
Исполнитель Пирожок преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
- Прибавить
- Прибавить
- Умножить на
Первая команда увеличивает число на экране на , вторая — на , третья — удваивает число. Программа для исполнителя Пирожок — это последовательность команд.
Сколько существует программ, для которых при исходном числе результатом является число и при этом траектория вычислений не содержит числа и ? Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел , , .
Решение 1
a = [0] * 274 a[256] = 1 for i in range(257, 274): a[i] = a[i - 3] + a[i - 4] + a[i // 2] * (i % 2 == 0) if i == 262 or i == 270: a[i] = 0 print(a[273])
Решение 2
Пусть — количество программ, которое число 1 преобразует в число . Тогда верно следующее утверждение:
Заметим, что — это больше числа, которое нам нужно найти, значит 3-я команда нам не понадобится. Составим уравнение:
Составим таблицу по данному уравнению:
Так как траектория не должна содержать число 262, то . Продолжим заполнение таблицы:
Аналогично .
Отсюда ответ — 2.
Ошибка.
Попробуйте повторить позже
Исполнитель Семенова преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
1. Прибавить 1,
2. умножить на 2,
3. умножить на 3.
Первая команда увеличивает число на экране на 1, вторая — удваивает число, третья — утраивает число. Программа для исполнителя Семенова — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 38 и при этом траектория вычислений не содержит числа 9 , 24 и 32? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Пусть — количество программ, которое число 1 преобразует в число . Тогда верно следующее утверждение:
— если число не делится ни на 2, ни на 3.
— если число делится на 2, но не делится на 3.
— если число делится на 3, но не делится на 2.
— если число делится на 2 и на 3.
Заполним таблицу по данным формулам до 8:
Ошибка.
Попробуйте повторить позже
Исполнитель САЛФЕТОЧКА преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1,
2. Прибавить 2.
Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2. Программа для исполнителя САЛФЕТОЧКА — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 14 и при этом траектория вычислений не содержит число 8? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.
Пусть — количество программ, которые число 1 преобразуют в число . Тогда верно следующее утверждение:
Заполним таблицу по данной формуле до 7:
Заполним таблицу до конца:
Ошибка.
Попробуйте повторить позже
Исполнитель Крабомёт преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
- Прибавить
- Умножить на
Первая команда увеличивает число на экране на , вторая увеличивает его в раза. Программа для исполнителя Программист — это последовательность команд.
Сколько существует программ, для которых при исходном числе результатом является число и при этом траектория вычислений не содержит число ? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел , , .
Решение 1
a = [0] * 20 a[1] = 1 for i in range(2, 20): a[i] = a[i - 1] + a[i // 2] * (i % 2 == 0) if i == 14: a[i] = 0 print(a[19])
Решение 2
a = [0] * 40 a[1] = 1 for i in range(1, 19): if i == 14: a[i] = 0 a[i + 1] += a[i] a[i * 2] += a[i] print(a[19])
Решение 3 Пусть — количество программ, которые число 1 преобразуют в число . Тогда верно следующее утверждение:
Заполним таблицу по данной формуле до 13:
Так как по условию сказано, что траектория не должна проходить через число 14, значит мы никак не можем его получить, что означает .
Заполним таблицу до конца:
Отсюда получаем ответ — 20.
Ошибка.
Попробуйте повторить позже
Исполнитель ЭВМ преобразует число, записанное на экране.
У исполнителя есть команды , которым присвоены номера:
1. Прибавить 1,
2. Прибавить 3,
3. Умножить на 2.
Первая команда увеличивает число на экране на 1, вторая — на 3, третья — удваивает число на экране. Программа для исполнителя ЭВМ — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 27 и при этом траектория вычислений не содержит числа 16 и 23? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.
Пусть — количество программ, которые число 1 преобразуют в число . Тогда верно следующее утверждение:
— если число не делится на 2.
— если число делится на 2.
Заполним таблицу по данной формуле до 15:
Продолжим заполнять таблицу:
Заполним таблицу до конца:
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
1. Прибавить 2,
2. Прибавить 3,
3. Прибавить 5.
Первая команда увеличивает число на экране на 2, вторая — на 3, третья — на 5. Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 25 и при этом траектория вычислений не содержит числа 13 и 19? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 9, 12, 14.
Пусть — количество программ, которое число 1 преобразует в число . Тогда верно следующее утверждение:
Заполним таблицу по данной формуле до 12:
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 3
3. Умножить на 2
4. Умножить на 3
Первая команда увеличивает число, записанное на экране, на 1, вторая — на 3, третья — удваивает число на экране, четвертая — утраивает число на экране. Программа для исполнителя— это последовательность команд.
Сколько существует программ, для которых при исходном числе 3 результатом является число 45 и при этом траектория вычисления не содержит числа 5, 17 и 35? Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 1314 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17, 51.
Пусть — количество программ, которое число 1 преобразует в число . Тогда верно следующее утверждение:
— если число не делится ни на 2, ни на 3.
— если число делится на 2, но не делится на 3.
— если число делится на 3, но не делится на 2.
— если число делится и на 2, и на 3.
Сразу заметим, что по условию задачи траектория не должна содержать числа 5, 17 и 35. Значит , и .
Составим таблицу по данным формулам:
Ошибка.
Попробуйте повторить позже
Исполнитель ГО преобразует число на экране. У исполнителя ГО две команды, которым присвоены номера:
. Прибавить
. Сделать нечётное
Первая из этих команд увеличивает число на экране на , вторая переводит число в число . Например,
вторая команда переводит число в число . Программа для исполнителя ГО – это последовательность команд.
Сколько существует таких программ, которые число преобразуют в число , причём траектория вычислений не
содержит число ? Траектория вычислений программы – это последовательность результатов выполнения всех команд
программы.
a = [0]*28 a[1] = 1 for i in range(2,28): a[i] = a[i-1] if i%2==1: a[i] += a[i//2] if i==26: a[i]=0 print(a[27])
Ошибка.
Попробуйте повторить позже
Исполнитель ЗВЕЗДОЧКА преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
1. Прибавить
2. Прибавить
3. Умножить на
Первая команда увеличивает число на экране на , вторая — на , третья — увеличивает число в раза.
Сколько существует программ, для которых при исходном числе результатом является число и при этом траектория не содержит число ? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел .
num[33] = 1
for i in range(34, 73):
num[i] = ((num[i-1] + num[i-4]) + num[i//2] * (i % 2 == 0)) * (i != 30)
print(num[72])
Ошибка.
Попробуйте повторить позже
Исполнитель КУРАТОР преобразует число, записанное на экране.
У исполнителя есть команды, которым присвоены номера:
1. Прибавить 1,
2. Прибавить 4,
3. Умножить на 2
Первая команда увеличивает число на экране на 1, вторая на 4, третья увеличивает число в 2 раза.
Сколько существует программ, для которых при исходном числе 33 результатом является число 72 и при этом траектория не содержит число 56? Траектория вычислений программы это последовательность результатов выполнения всех команд программы. Например, для программы 123 при исходном числе 1 траектория будет состоять из чисел 2, 6, 12.
a[33] = 1
for i in range(33, 73):
a[56] = 0
a[i + 1] += a[i]
a[i + 4] += a[i]
a[i * 2] += a[i]
print(a[72])
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
- Прибавить ;
- Сделай нечётное.
Выполняя первую команду, исполнитель увеличивает число на , а выполняя вторую — из числа получает число .
Сколько существует программ, для которых при исходном числе результатом является число и при этом траектория вычислений не содержит число ?
Решение 1 (Рекурсия)
def f(s, fi): if s > fi: return 0 if s == 21: return 0 if s == fi: return 1 return f(s + 1, fi) + f(s * 2 + 1, fi) print(f(1, 25))
Решение 2 (Динамика)
a = [0] * 26 a[1] = 1 for i in range(2, 26): a[i] += a[i - 1] if i % 2 != 0: a[i] += a[i // 2] if i == 21: a[i] = 0 print(a[25])
Ошибка.
Попробуйте повторить позже
Исполнитель ЭМИ преобразует число, записанное на экране. У исполнителя есть команды, которым присвоены номера:
- Прибавить ;
- Прибавить ;
- Умножить на ;
- Умножить на .
Первая команда увеличивает число, записанное на экране, на , вторая — на , третья — удваивает число на экране, четвертая — утраивает число на экране. Программа для исполнителя ЭМИ — это последовательность команд. Сколько существует программ, для которых при исходном числе результатом является число и при этом траектория вычисления не содержит числа и ?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел .
a = [0]*46 a[3] = 1 for i in range(4, 46): a[i] = a[i-1]+a[i-3] if i % 2 == 0: a[i] += a[i//2] if i % 3 == 0: a[i] += a[i//3] if i == 5 or i == 17 or i == 35: a[i] = 0 print(a[45])
Ошибка.
Попробуйте повторить позже
Исполнитель Кукушка преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 2
Программа для исполнителя Кукушка – это последовательность команд. Сколько существует программ, для которых при исходном числе 3 результатом является число 13 и при этом траектория вычислений не содержит число 8?
Решение 1 (Рекурсия)
def f(start, finish): if start == finish: return 1 if start > finish or start == 8: return 0 return f(start + 1, finish) + f(start + 2, finish) + f(start * 2, finish) print(f(3, 13))
Решение 2 (Динамика)
a = [0] * 14 a[3] = 1 for i in range(4, 14): if i == 8: continue a[i] += a[i - 1] a[i] += a[i - 2] if i % 2 == 0: a[i] += a[i // 2] print(a[13])
Ошибка.
Попробуйте повторить позже
Исполнитель Калькулятор преобразует число на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
3. Прибавить 3
Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья увеличивает на 3.
Программа для исполнителя Калькулятор — это последовательность команд.
Сколько существует программ, которые преобразуют исходное число 2 в число 20 и при этом траектория вычислений не содержит чисел 7 и 15?
Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 312 при исходном числе 6 траектория будет состоять из чисел 9, 10, 20.
Решение 1 (Рекурсия)
def f(a, b): if a == b: return 1 if a > b or a == 7 or a == 15: return 0 return f(a + 1, b) + f(a * 2, b) + f(a + 3, b) print(f(2, 20))
Решение 2 (Динамика)
a = [0] * 21 a[2] = 1 for i in range(3, 21): if i == 7 or i == 15: continue if i % 2 == 0: a[i] += a[i // 2] a[i] += a[i - 3] a[i] += a[i - 1] print(a[20])
Ошибка.
Попробуйте повторить позже
Исполнитель Щелчок преобразует число на экране. У исполнителя есть три команды:
- Прибавить
- Умножить на
- Прибавить остаток от деления на и прибавить
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числe результатом является число , при этом траектория вычислений не содержит числа .
Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел , , .
Решение 1 (Рекурсия)
def f(st, fn, exit_number): if st == fn: return 1 if st > fn or st == exit_number: return 0 x = f(st + 2, fn, exit_number) y = f(st * 3, fn, exit_number) z = f(st + st % 2 + 2, fn, exit_number) return x + y + z print(f(1, 15, 13))
Решение 2 (Динамика)
a = [0] * 16 * 3 a[1] = 1 for i in range(1, 15): if i != 13: a[i + 2] += a[i] a[i * 3] += a[i] a[i + i % 2 + 2] += a[i] print(a[15])
Решение 3 (Динамика)
a = [0] * 16 a[1] = 1 # 2 -> 2 + 0 + 2 = 4 # 1 -> 1 + 1 + 2 = 4 for i in range(2, 16): a[13] = 0 a[i] = a[i - 2] + a[i // 3] * (i % 3 == 0) + (a[i - 2] + a[i - 2 - 1]) * (i % 2 == 0) print(a[15])
Ошибка.
Попробуйте повторить позже
Исполнитель КЛУБНИЧКА преобразует число на экране. У исполнителя есть две команды:
1. Вычесть ;
2. Поделить на нацело.
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числe результатом является число , при этом траектория вычислений не содержит число .
Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы при исходном числе траектория будет состоять из чисел .
a = [0] * (43 * 3 + 3) a[43] = 1 for i in range(42, 0, -1): a[i] = a[i + 1] + a[i * 3] + a[i * 3 + 1] + a[i * 3 + 2] if i == 8: a[i] = 0 print(a[1])
Ошибка.
Попробуйте повторить позже
Исполнитель Филин преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Первая команда увеличивает число на экране на 1, вторая увеличивает его в 2 раза. Программа для исполнителя Филина — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 30, и при этом траектория вычислений не содержит число 8? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 1 траектория будет состоять из чисел 2, 4, 5.
def f(a,b): if a > b or a == 8:return 0 if a == b:return 1 if a < b:return f(a+1,b)+f(a*2,b) print(f(1,30))
Ошибка.
Попробуйте повторить позже
Исполнитель КтоТут преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 3
2. Умножить на 2
Программа для исполнителя КтоТут – это последовательность команд. Сколько существует программ, для которых при исходном числе 4 результатом является число 47, и при этом траектория вычислений не содержит число 28?
a = [0] * 100 a[4] = 1 for i in range(5, 48): a[i] = a[i - 3] + a[i // 2] * (i % 2 == 0) a[28] = 0 print(a[47])
Ошибка.
Попробуйте повторить позже
Исполнитель Робот преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Программа для исполнителя Робот – это последовательность команд. Сколько существует программ, для которых при исходном числе 5 результатом является число 31, и при этом траектория вычислений не содержит число 14?
def f(n, m): if n == m: return 1 if n > m or n == 14: return 0 return f(n+1, m) + f(n*2, m) print(f(5, 31))