Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.08.2014
Сообщений: 12

Определить, сколько возможно построить различных программ для исполнителя, которые преобразуют число х в у

10.03.2015, 19:09. Показов 6774. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У некоторого исполнителя, обрабатывающего числа, есть три команды: +1, +2, *3. Исполнитель получает на вход некоторое число и программу, представляющую собой некоторую последовательность вышеназванных команд. На выходе он выдает новое число - результат применения программы к исходному числу. Вам предлагается написать программу - анализатор данного исполнителя. На вход программе подаются два числа х и у, каждое из которых лежит в диапазоне от 0 до 200 (включая границы) и при этом гарантируется, что х меньше, либо равно у. Ваша программа должна подсчитать, сколько возможно построить различных программ для исполнителя, которые преобразуют число х в у. В качестве ответа нужно вывести одно целое число.

Добавлено через 37 секунд
Буду рад оперативной помощи, заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.03.2015, 19:09
Ответы с готовыми решениями:

Сколько существует программ, которые число a преобразуют в число b,а затем это число преобразуют в число c
Нужно написать общую программу,решающую задачу. У исполнителя две команды, которым присвоены номера: Прибавить 1 Умножить на 2 ...

Рекурсия: Сколько существует программ, которые число 3 преобразуют в число 20?
Уже разбил свою голову об стол, прошу помощи в этой задаче "для глупеньких": Исполнитель калькулятор преобразует целое число,...

Сколько есть программ, которые число 1 преобразуют в число 20?
Нужна программа,которая находит ответ к задаче №22 из ЕГЭ по Информатике. Пример задачи: У исполнителя Удвоитель две команды, которым...

5
12 / 12 / 6
Регистрация: 27.11.2013
Сообщений: 73
11.03.2015, 08:03
хорошая задача
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
11.03.2015, 08:49
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Проще всего рекурсией:
Pascal
1
2
3
4
5
…
vars := 0;
FindVariant(X, Y);
WriteLn(vars);
Pascal
1
2
3
4
5
6
7
8
9
10
procedure FindVariants(A, B : Integer);
begin
  if A > B then Exit
  else if A = B then Inc(vars)
  else begin
    FindVariants(A +1, B);
    FindVariants(A +2, B);
    FindVariants(A *3, B);
  end;
end;
0
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 9
23.03.2016, 16:37
JuriiMW, А можно подробнее, а желательно программу целиком
0
44 / 44 / 66
Регистрация: 22.07.2015
Сообщений: 191
23.03.2016, 19:38
Решение методом динамического программирования.

Что показывает элемент: a[i] - кол-во способов получить i из x
Начальные значения: a[x] = 1
Рекурентное соотношение: a[i] = a[i - 1] + a[i - 2] + (если i кратное трем) a[i div 3]
Ответ: a[y]

Pascal
1
2
3
4
5
6
7
8
9
10
var
  x, y, i, j: integer;
  a: array[0..200] of int64;
begin
  read(x, y);
  a[x] := 1;
  for i := x + 1 to y do
    a[i] := a[i - 1] + a[i - 2] + a[i div 3] * ord(i mod 3 = 0);
  write(a[y])
end.
UPD: Для отдаленных чисел x и y придется использовать длинную арифметику
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
23.03.2016, 20:49
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Yakoe, это и есть программа , практически целиком. С позволения:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var x,y,vars:integer;
 
procedure FindVariants(A, B : Integer);
begin
  if A > B then Exit
  else if A = B then Inc(vars)
  else begin
    FindVariants(A +1, B);
    FindVariants(A +2, B);
    FindVariants(A *3, B);
  end;
end;
begin
vars := 0;
readln(x,y);
FindVariants(X, Y);
WriteLn(vars);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2016, 20:49
Помогаю со студенческими работами здесь

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

Рекурсия: сколько есть программ, которые преобразуют заданное число (по определенному алгоритму) в 24?
Помогите пожалуйста с решение задачи, я не понимаю как решать рекурсией У исполнителя калькулятора две команды 1) прибавить 1 2)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru