На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 30.11.20 13:21. Заголовок: Решение задания №23 Динамическое программирование: ограничение на количество команд


Как решить другим способом?
(№ 2765) Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 4
3. Умножить на 2
Программа для исполнителя Калькулятор – это последовательность команд. Сколько существует программ, состоящих из 7 команд, для которых при исходном числе 3 результатом является число 27?
С помощью Free Pascal производим полный перебор всех возможных вариантов из ровно 7 команд. Для этого подсчитаем кол-во команд:
это 3^7 = 2187 способов, т.е. цикл от 0 до 2186.
С помощью программы составляем список всех команд и записываем в файл: так как 3 команды, то мы переводим числа от 0 до 2186 в троичную систему счисления и дополняем нулями до длины 7. Результаты записываем в текстовый файл.
var i,a,b,c,d,e,f,g: integer;
begin
assign(output,'a.txt');
rewrite(output);
for i:=0 to 2186 do
begin
g:=i mod 3;
f:=i div 3 mod 3;
e:=i div 3 div 3 mod 3;
d:=i div 3 div 3 div 3 mod 3;
c:=i div 3 div 3 div 3 div 3 mod 3;
b:=i div 3 div 3 div 3 div 3 div 3 mod 3;
a:=i div 3 div 3 div 3 div 3 div 3 div 3 mod 3;
writeln(a,b,c,d,e,f,g)
end
end.
Затем с помощью новой программы, считывая данные из подготовленного файла, мы проверяем каждую строчку на результат равный 27.
var n,i,k,x,a,b,c,d,e,f,g:longint;
begin
assign(input,'a.txt');
reset(input);
k:=0;
for i:=0 to 2186 do
begin
n:=3;
readln(x);
a:=x div 1000000;
if a=0 then n:=n+1
else if a=1 then n:=n+4
else if a=2 then n:=n*2;
b:=x div 100000 mod 10;
if b=0 then n:=n+1
else if b=1 then n:=n+4
else if b=2 then n:=n*2;
c:=x div 10000 mod 10;
if c=0 then n:=n+1
else if c=1 then n:=n+4
else if c=2 then n:=n*2;
d:=x div 1000 mod 10;
if d=0 then n:=n+1
else if d=1 then n:=n+4
else if d=2 then n:=n*2;
e:=x div 100 mod 10;
if e=0 then n:=n+1
else if e=1 then n:=n+4
else if e=2 then n:=n*2;
f:=x div 10 mod 10;
if f=0 then n:=n+1
else if f=1 then n:=n+4
else if f=2 then n:=n*2;
g:=x mod 10;
if g=0 then n:=n+1
else if g=1 then n:=n+4
else if g=2 then n:=n*2;
if n=27 then
begin k:=k+1;writeln(a,b,c,d,e,f,g) end
end;
writeln(‘Otvet’, k)
end.
Ответ: 37

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


Администратор




Сообщение: 2178
ссылка на сообщение  Отправлено: 01.12.20 00:13. Заголовок: zhargal пишет: Как р..


zhargal пишет:
 цитата:
Как решить другим способом?

См. в соседней теме.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 20
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет