Исполнитель калькулятор преобразует число на экране у исполнителя есть три команды которым присвоены
Перейти к содержимому

Исполнитель калькулятор преобразует число на экране у исполнителя есть три команды которым присвоены

Исполнитель калькулятор преобразует число на экране у исполнителя есть три команды которым присвоены

Тип 23 № 33525

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 2 в число 15, и при этом траектория вычислений содержит число 10 и не содержит числа 14?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 6, 7, 21.

Искомое количество программ равно количеству программ, получающих из числа 2 число 15. Траектория вычислений не должна содержать число 14 и должна содержать число 10.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n−2) + R(n/3) — если n делится на три, при n > 2.

2. R(n) = R(n−1) + R(n−2) — если n не делится на три, при n > 2.

R(6) = R(5) + R(4) + R(2) = 6

R(9) = R(8) + R(7) + R(3) = 25

R(10) = R(9) + R(8) = 40

R(11) = R(10) = 40 (R(9) не учитываем, поскольку траектория должна содержать число 10)

R(12) = R(11) + R(10) = 80 (R(4) не учитываем, поскольку траектория должна содержать число 10)

R(13) = R(12) + R(11) = 120

R(15) = R(13) = 120 (R(14) и R(5) не учитываем, поскольку траектория должна содержать число 10 и не должна содержать число 14)

Таким образом, количество программ, удовлетворяющих условию задачи, равно 120.

Приведем другое решение.

Количество программ, преобразующих число 2 в число 15 таким образом, чтобы траектория вычислений содержала число 10, равно произведению количества программ, преобразующих число 2 в число 10, и количества программ, преобразующих число 10 в число 15.

Найдем количество программ, преобразующих число 2 в число 10:

R(6) = R(5) + R(4) + R(2) = 6

R(9) = R(8) + R(7) + R(3) = 25

R(10) = R(9) + R(8) = 40.

Найдем количество программ, преобразующих число 10 в число 15, при этом по условию траектория вычислений не должна содержать висло 14. Следовательно, существует только три такие программы: 1112, 122, 212.

Тогда количество программ, преобразующих число 2 в число 15 так, чтобы траектория вычислений содержала число 10 и не содержала число 14, равно 40 · 3 = 120.

Приведём решение на языке PascalABC.

var a:array[-10..15] of integer;

if i 0 then a[i]:=a[i-1]+a[i-2];

for i:=-10 to 9 do

for i:=11 to 15 do begin

if i mod 3=0 then a[i]:=a[i-1]+a[i-2]+a[i div 3];

if i mod 3 <> 0 then a[i]:=a[i-1]+a[i-2];

Тип 23 № 40739

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 15, и при этом траектория вычислений содержит число 8?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 231 при исходном числе 4 траектория будет состоять из чисел 6, 18, 19.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n−2) + R(n/3)(если n — кратно 3).

Также будем учитывать то, что траектория вычислений должна содержать число 8.

R(3) = R(2) + R(1) + R(1) = 3.

R(6) = R(5) + R(4) + R(2) = 12.

R(10) = R(9) + R(8) = 62.

R(11) = R(10) + R(9) = 93.

R(12) = R(11) + R(10) = 155.

R(13) = R(12) + R(11) = 248.

R(14) = R(13) + R(12) = 403.

R(15) = R(14) + R(13) = 651.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 651.

Приведём решение на языке PascalABC.

a: array [-2..15] of integer;

for i:=-2 to 8 do begin

if i 1) then a[i]:=a[i-1]+a[i-2]+a[(i div 3)];

if (i mod 3 <> 0) and (i > 1) then a[i]:=a[i-1]+a[i-2];

for i:=1 to 7 do a[i]:=0;

for i:=9 to 15 do begin

if (i mod 3=0) then a[i]:=a[i-1]+a[i-2]+a[(i div 3)];

if (i mod 3 <> 0) then a[i]:=a[i-1]+a[i-2];

Тип 23 № 40998

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 15, и при этом траектория вычислений содержит число 10?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 231 при исходном числе 4 траектория будет состоять из чисел 6, 18, 19.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n−2) + R(n/3)(если n — кратно 3).

Также будем учитывать то, что траектория вычислений должна содержать число 10.

R(3) = R(2) + R(1) + R(1) = 3.

R(6) = R(5) + R(4) + R(2) = 12.

R(9) = R(8) + R(7) + R(3) = 53.

R(10) = R(9) + R(8) = 84.

R(12) = R(11) + R(10) = 168.

R(13) = R(12) + R(11) = 252.

R(14) = R(13) + R(12) = 420.

R(15) = R(14) + R(13) = 672.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 672.

Тип 23 № 19071

Исполнитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя — это последовательность команд.

Сколько существует программ, для которых при исходном числе 1 результатом является число 20 и при этом траектория вычислений содержит число 10?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

Искомое количество программ равно произведению количества программ, получающих из числа 1 число 10, на количество программ, получающих из числа 10 число 20.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n, F(n) — количество программ, которые число 10 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/2)(если n — чётно).

R(4) = R(3) + R(2) = 2 + 2 = 4.

R(6) = R(5) + R(3) = 4 + 2 = 6.

R(8) = R(7) + R(4) = 6 + 4 = 10.

R(10) = R(9) + R(5) = 10 + 4 = 14.

F(20) = F(19) + F(10) = 2.

Таким образом, количество программ, удовлетворяющих условию задачи равно 14 · 2 = 28.

Тип 23 № 29671

Исполнитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

2. Умножить на 3

Первая команда увеличивает число на экране на 1, вторая умножает его на 3. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 70, и при этом траектория вычислений содержит число 22?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 212 при исходном числе 4 траектория будет состоять из чисел 12, 13, 39.

Искомое количество программ равно произведению количества программ, получающих из числа 1 число 22, на количество программ, получающих из числа 22 число 70, при этом траектория вычислений должна содержать число 22.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/3)(если n — кратно 3).

Из числа 22 число 70 можно получить тремя способами: последовательностью команд 21111, последовательностью команд 121 и последовательностью команд 11..11.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 15 · 3 = 45.

Тип 23 № 33102

Исполнитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

2. Умножить на 3

Первая команда увеличивает число на экране на 1, вторая умножает его на 3. Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 65, и при этом траектория вычислений содержит число 20?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 212 при исходном числе 4 траектория будет состоять из чисел 12, 13, 39.

Искомое количество программ равно произведению количества программ, получающих из числа 1 число 20, на количество программ, получающих из числа 20 число 65, при этом траектория вычислений должна содержать число 20.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/3)(если n — кратно 3).

Из числа 20 число 65 можно получить тремя способами: последовательностью команд 211111, последовательностью команд 1211 и последовательностью команд 11..11.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 12 · 3 = 36.

Тип 23 № 33195

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 27, и при этом траектория вычислений содержит число 8 и не содержит чисел 10 и 11?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 6, 7, 21.

Искомое количество программ равно количеству программ, получающих из числа 1 число 27. Траектория вычислений не должна содержать чисел 10 и 11 и должна содержать число 8.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n−2) + R(n/3) — если n делится на три, при n > 2.

2. R(n) = R(n−1) + R(n−2) — если n не делится на три, при n > 2.

R(3) = R(2) + R(1) + R(1) = 3.

R(6) = R(5) + R(4) + R(2) = 12.

Программ, получающих из числа 8 число 27 всего 4: 3111, 312, 321 и 13.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 31 · 4 = 124.

Тип 23 № 33493

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 30, и при этом траектория вычислений содержит число 9 и не содержит чисел 11 и 12?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 6, 7, 21.

Искомое количество программ равно количеству программ, получающих из числа 1 число 30. Траектория вычислений не должна содержать чисел 11 и 12 и должна содержать число 9.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n−2) + R(n/3) — если n делится на три, при n > 2.

2. R(n) = R(n−1) + R(n−2) — если n не делится на три, при n > 2.

R(3) = R(2) + R(1) + R(1) = 3.

R(6) = R(5) + R(4) + R(2) = 12.

R(9) = R(8) + R(7) + R(3) = 53.

Программ, получающих из числа 9 число 30 всего 4: 3111, 312, 321 и 13.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 53 · 4 = 212.

Тип 23 № 33768

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 2 в число 16, и при этом траектория вычислений содержит число 11 и не содержит числа 15?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 6, 7, 21.

Искомое количество программ равно количеству программ, получающих из числа 2 число 16. Траектория вычислений не должна содержать число 15 и должна содержать число 11.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n−2) + R(n/3) — если n делится на три, при n > 2.

2. R(n) = R(n−1) + R(n−2) — если n не делится на три, при n > 2.

R(6) = R(5) + R(4) + R(2) = 6

R(9) = R(8) + R(7) + R(3) = 25

R(10) = R(9) + R(8) = 40

R(11) = R(10) + R(9) = 65

R(12) = R(11) = 65 (R(4) и R(10) не учитываем, поскольку траектория должна содержать число 11)

R(13) = R(12) + R(11) = 130

R(14) = R(13) + R(12) = 195

R(16) = R(14) = 195 (R(15) не учитываем, поскольку траектория должна не должна содержать число 15)

Таким образом, количество программ, удовлетворяющих условию задачи, равно 195.

Тип 23 № 35481

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 2 в число 36, и при этом траектория вычислений содержит число 12 и не содержит числа 30?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 8, 9, 27.

Искомое количество программ равно количеству программ, получающих из числа 2 число 36. Траектория вычислений не должна содержать число 30 и должна содержать число 12.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n/3) — если n не делится на два, но делится на три, при n > 2.

2. R(n) = R(n−1) + R(n/2) — если n не делится на три, но делится на два, при n > 2.

3. R(n) = R(n−1) + R(n/2) + R(n/3) — если n делится на три и делится на два, при n > 2.

R(6) = R(5) + R(3) + R(2) = 4

R(12) = R(11) + R(6) + R(4) = 15

Из числа 12 число 36 можно получить четырьмя способами: 3, 111121111, 11111211, 1111112.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 15 · 4 = 60.

Тип 23 № 35912

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья — умножает на 3.

Программа для исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 2 в число 39, и при этом траектория вычислений содержит число 13 и не содержит числа 30?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 213 при исходном числе 4 траектория будет состоять из чисел 8, 9, 27.

Искомое количество программ равно количеству программ, получающих из числа 2 число 39. Траектория вычислений не должна содержать число 30 и должна содержать число 13.

Пусть R(n) — количество программ, которые число 1 преобразуют в число n.

Верны следующие соотношения:

1. R(n) = R(n−1) + R(n/3) — если n не делится на два, но делится на три, при n > 2.

2. R(n) = R(n−1) + R(n/2) — если n не делится на три, но делится на два, при n > 2.

3. R(n) = R(n−1) + R(n/2) + R(n/3) — если n делится на три и делится на два, при n > 2.

R(6) = R(5) + R(3) + R(2) = 4

R(12) = R(11) + R(6) + R(4) = 15

Из числа 13 число 39 можно получить пятью способами: 11121111111, 1111211111, 111112111, 11111121, 3.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 15 · 5 = 75.

Тип 23 № 38957

Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая умножает его на 3. Программа для исполнителя — это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 2 в число 90, и при этом траектория вычислений содержит число 28?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 212 при исходном числе 4 траектория будет состоять из чисел 12, 13, 39.

Искомое количество программ равно произведению количества программ, получающих из числа 2 число 28, на количество программ, получающих из числа 28 число 90, при этом траектория вычислений должна содержать число 28.

Пусть R(n) — количество программ, которые число 2 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/3)(если n — кратно 3).

Из числа 28 число 90 можно получить четырьмя способами: последовательностью команд 2111111, последовательностью команд 12111, последовательностью команд 112 и последовательностью команд 11..11.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 14 · 4 = 56.

Тип 23 № 39252

Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

Первая команда увеличивает число на экране на 1, вторая умножает его на 3. Программа для исполнителя — это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 2 в число 87, и при этом траектория вычислений содержит число 26?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 212 при исходном числе 4 траектория будет состоять из чисел 12, 13, 39.

Искомое количество программ равно произведению количества программ, получающих из числа 2 число 26, на количество программ, получающих из числа 26 число 87, при этом траектория вычислений должна содержать число 28.

Пусть R(n) — количество программ, которые число 2 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/3)(если n — кратно 3).

Из числа 26 число 87 можно получить пятью способами: последовательностью команд 211. 11, последовательностью команд 12111111, последовательностью команд 112111, последовательностью команд 1112 и последовательностью команд 11..11.

Таким образом, количество программ, удовлетворяющих условию задачи, равно 11 · 5 = 55.

Тип 23 № 18450

Исполнитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя – это последовательность команд.

Сколько существует программ, для которых при исходном числе 2 результатом является число 29 и при этом траектория вычислений содержит число 14?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

Пусть R(n) — количество программ, которые число 3 преобразуют в число n.

Верно следующее соотношение:

R(n) = R(n−1) + R(n/2)(если n — чётно).

R(n) = R(n−1) (если n — нечётно).

Заметим, что R(29) = R(28), а R(28) = R(27) + R(14). Число 27 можно получить из числа 14 единственным способом: последовательным прибавлением единиц, то есть R(27) = R(14) = 13.

Таким образом, количество программ, удовлетворяющих условию задачи, равно

Аналоги к заданию № 18091: 18450 Все

Тип 23 № 26965

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

Сколько существует программ, для которых при исходном числе 4 результатом является число 13, и при этом траектория вычислений содержит число 11?

Искомое количество программ равно произведению количества программ, получающих из числа 4 число 11, на количество программ, получающих из числа 11 число 13.

Пусть R(n) — количество программ, которые число 4 преобразуют в число n, а P(n) — количество программ, которые число 11 преобразуют в число n.

Для всех n > 7 верны следующие соотношения:

1. Если n не делится на 2, то тогда R(n) = R(n — 1) + R(n — 2), так как существует два способа получения n — прибавлением единицы или прибавлением двойки. Аналогично P(n) = P(n — 1) + P(n — 2)

2. Если n делится на 2, тогда R(n) = R(n — 1) + R(n — 2) + R(n / 2). Аналогично P(n) = P(n — 1) + P(n — 2) + P(n / 2)

Последовательно вычислим значения R(n):

R(6) = R(4) + R(5) = 1 + 1 = 2

R(7) = R(5) + R(6) = 2 + 1 = 3

R(8) = R(6) + R(7) + R(4) = 2 + 3 + 1 = 6

R(9) = R(7) + R(8) = 3 + 6 = 9

R(10) = R(8) + R(9) + R(5) = 6 + 9 + 1 = 16

R(11) = R(9) + R(10) = 9 + 16 = 25

Теперь вычислим значения P(n):

P(13) = P(11) + P(12) = 2

Таким образом, количество программ, удовлетворяющих условию задачи, равно 25 · 2 = 50.

Тип 23 № 26994

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:

Сколько существует программ, для которых при исходном числе 3 результатом является число 14, и при этом траектория вычислений содержит число 9?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 10, 30.

Искомое количество программ равно произведению количества программ, получающих из числа 3 число 14, при этом траектория вычислений должна содержать число 9.

Пусть R(n) — количество программ, которые число 3 преобразуют в число n.

Верны следующие соотношения:

R(n) = R(n−1) + R(n/3)(если n — кратно 3) + R(n−2).

R(9) = R(8) + R(3) + R(7) = 14.

R(11) = R(10) + R(9) = 28.

R(12) = R(10) + R(11) = 42.

R(13) = R(12) + R(11) = 70.

R(14) = R(13) + R(12) = 112.

Тип 23 № 35997

Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:

2. Удвоить и прибавить

Первая команда умножает число на экране на 2, вторая — умножает его на 2, а затем прибавляет 1.

Программа для исполнителя — это последовательность команд. Например, программа 121 при исходном числе 3 последовательно получит числа 6, 13 и 26. Результатом программы будет число 26.

Сколько различных результатов можно получить из исходного числа 1 после выполнения программы, содержащей ровно 10 команд?

Заметим, что у исполнителя есть только две команды, одна из которых — удвоение, а вторая — удвоение с последующим прибавлением единицы. Следовательно, с помощью последовательности команд одной и той же длины нельзя получить два одинаковых результата. Например, из исходного числа 1 последовательностями команд длиной 2 можно получить четыре числа: 4, 5, 6, 7. Также заметим, что с увеличением длины последовательности команд на единицу получается в два раза больше результатов. То есть, последовательностью команд длиной 1 можно получить два различных результата, последовательностью команд длиной 2 можно получить четыре различных результата, последовательностью команд длиной 3 можно получить восемь различных результатов и так далее. Таким образом, из исходного числа 1 после выполнения программы, содержащей ровно 10 команд, можно получить 2 10  = 1024 различных результатов.

VladHub18 / Task EGE 23.py

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

#У исполнителя Калькулятор три команды, которым присвоены номера:
#1. прибавь 1
#2. умножь на 2
#3. умножь на 3
#Сколько есть программ, которые число 1 преобразуют в число 18?
def numProg ( start , x ):
if start == x : # если цель достигнута, то
return 1 # завершить функцию, посчитав цепочку (программу)
if start > x : # если перелет, то
return 0 # завершить функцию, не считая цепочку
if start < x : #продолжаем строить дерево
return numProg ( start + 1 , x ) + numProg ( start * 2 , x ) + numProg ( start * 3 , x )
print ( numProg ( 1 , 18 ) )
#Исполнитель М17 преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
#1. Прибавить 1
#2. Прибавить 2
#3. Умножить на 3
#Сколько существует программ, для которых при исходном числе 2 результатом является число 12 и
#при этом траектория вычислений содержит числа 8 и 10?
def numProg ( start , x ):
if start == x :
return 1
if start > x :
return 0
if start < x :
return numProg ( start + 1 , x ) + numProg ( start + 2 , x ) + numProg ( start * 3 , x )
print ( numProg ( 2 , 8 ) * numProg ( 8 , 10 ) * numProg ( 10 , 12 )) #Если траектория содержит точки,
#то можно представить как метод интервалов с пуcтыми точками
#Исполнитель Июнь15 преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
#1. Прибавить 1
#2. Умножить на 2
#Сколько существует программ, для которых при исходном числе 2 результатом является число 29 и
#при этом траектория вычислений содержит число 14 и не содержит числа 25?
def numProg ( start , x ):
if start == x :
return 1
if start == 25 or start > x : #Если x=25 или перелет, то завершить функцию, не считая цепочку
return 0
if start < x :
return numProg ( start + 1 , x ) + numProg ( start * 2 , x )
print ( numProg ( 2 , 14 ) * numProg ( 14 , 29 ))
#У исполнителя Удвоитель две команды, которым присвоены номера:
#1. Прибавить 1
#2. Умножить на 2
#Сколько существует программ, преобразующих число 4 в число 24, предпоследней командой которых является команда «1»?
def numProg ( start , x ):
if start == x :
return 1
if start > x :
return 0
if start < x :
return numProg ( start + 1 , x ) + numProg ( start * 2 , x )
print ( numProg ( 4 , 11 ) + numProg ( 4 , 22 ))
#1)Итак, мы знаем предпоследнюю команду – 1, при этом последняя команда может быть любая – 1 или 2,
#выходит, что нужно получить количество всех программ вида «*11» и «*12», где звёздочка обозначает любые команды
#2)Если программа заканчивается на «11», то до выполнения цепочки «11» у нас было число 24 – 1 – 1 = 22;
#поэтому нужно найти число программ для преобразования 4 в 22
#3)Теперь рассматриваем случай, когда программа заканчивается на «12», это значит, что до выполнения цепочки «12»
#у нас было число (24/ 2) – 1 = 11; поэтому нужно найти число программ для преобразования 4 в 11
#У исполнителя Калькулятор две команды, которым присвоены номера:
#1. прибавь 1
#2. увеличь число десятков на 1
#Например: при помощи команды 2 число 23 преобразуется в 33. Если перед выполнением команды 2 вторая с конца цифра равна 9, она не изменяется.
#Сколько есть программ, которые число 11 преобразуют в число 27?
def numProg ( start , finish ):
if start == finish :
return 1
if start > finish :
return 0
if start < finish :
return numProg ( start + 1 , finish ) + numProg ( start + 10 , finish )
print ( numProg ( 11 , 27 ))
#У исполнителя Калькулятор две команды, которым присвоены номера:
#1. прибавь 1
#2. увеличь каждый разряд числа на 1
#Например, число 23 с помощью команды 2 превратится в 34, а 29 в 39 (так как младший разряд нельзя увеличить).
#Если перед выполнением команды 2 какая-либо цифра равна 9, она не изменяется. Сколько есть программ,
#которые число 25 преобразуют в число 51?
def com2 ( n ):
if n % 10 == 9 :
n += 10
return n
else :
n += 11
return n
def numProg ( start , finish ):
if start == finish :
return 1
if start > finish :
return 0
if start < finish :
return numProg ( start + 1 , finish ) + numProg ( com2 ( start ), finish )
print ( numProg ( 25 , 51 ))
#Исполнитель U18 преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
#1. Вычесть 1
#2. Вычесть 3
#3. Разделить нацело на 3
#При выполнении команды 3 выполняется деление нацело (остаток отбрасывается).
#Программа для исполнителя U18 – это последовательность команд. Сколько существует таких программ,
#которые исходное число 22 преобразуют в число 2?
def numProg ( start , finish ):
if start == finish :
return 1
if start < finish :
return 0
if start > finish :
return numProg ( start — 1 , finish ) + numProg ( start — 3 , finish ) + numProg ( start // 3 , finish )
print ( numProg ( 22 , 2 ))
#Исполнитель U18 преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
#1. Вычесть 1
#2. Вычесть 3
#3. Взять остаток от деления на 4
#Команда 3 выполняется только для чисел, больших, чем 4.
#Программа для исполнителя U18 – это последовательность команд. Сколько существует таких программ,
#которые исходное число 22 преобразуют в число 2?
def com3 ( n ):
if n > 4 :
n %= 4
return n
else :
return 0
def numProg ( start , finish ):
if start == finish :
return 1
if start < finish :
return 0
if start > finish :
return numProg ( start — 1 , finish ) + numProg ( start — 3 , finish ) + numProg ( com3 ( start ), finish )
print ( numProg ( 22 , 2 ))

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

informatikstr.ru

У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 1
2. умножь на 2
Сколько есть программ, которые число 1 преобразуют в число 16?

Ответ: 36

У исполнителя Калькулятор три команды, которым присвоены номера:
1. прибавь 1
2. умножь на 3
3. умножь на 4
Сколько есть программ, которые число 1 преобразуют в число 25?

Ответ: 38

Исполнитель Июнь15 преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя Июнь15 – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 34 и при этом траектория вычислений содержит число 12?

Ответ: 70

Исполнитель Июнь15 преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя Июнь15 – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 34 и при этом траектория вычислений содержит число 10 и не содержит число 28?

Ответ: 21

Исполнитель Простачок преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Прибавить предыдущее
3. Прибавить следующее
Первая команда увеличивает число на 2, вторая – на предыдущее (например, число 5 будет преобразовано по правилу 5 + 4), третья – на следующее (аналогично, 5 по правилу 5 + 6 = 11). Сколько существует таких программ, которые исходное число 7 преобразуют в число 63, и при этом траектория вычислений не содержит число 43?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *