Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2013, 12:59   #1
anton.dasuik
Пользователь
 
Регистрация: 25.01.2013
Сообщений: 16
По умолчанию Паскаль. написать программу

Задача «Пизанская башня». Многие из вас следили за события 21 декабря 2012 года, поскольку по календарю индейского племени майа должен был наступить конец света. Известна и другая легенда о Ханойскую башню и конец света. Легенда гласит, что в одном далеком монастыре находится бронзовый диск, на котором закреплены три алмазных стержни. В начале существования человечества, монахи этого монастыря провинились перед богами. Разгневанные боги положили n дисков на один из стержней, все диски имели разные радиусы и были расположены по убыванию радиуса - самый диск лежал снизу, на нем меньше диск, ..., маленький диск располагался сверху. Монахи должны переводить диски между стержнями, причем каждый раз должны класть диск или на пустой стержень, или поверх большего диска. Как только все n дисков будут переведены со стержня, на который боги сложили их, на другой стержень, башня вместе с храмом превратится в пыль и под грохот грома погибнет мир.

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

По легенде, когда все диски будут переведены с первого стержня на третий, Пизанская башня перестанет наклоняться и начнет стоять ровно, а на Земле наступит рай.

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

Формат ввода

В текстовом файле «piza.dat» задали единственное натуральное число n () - количество дисков.

Формат вывода

В текстовый файл «piza.sol» выведите единственное число - минимальное число переложений, необходимое для того, чтобы все диски оказались на третьем стержне.

Например:
3...................5
5.................15
anton.dasuik вне форума Ответить с цитированием
Старый 20.02.2013, 15:05   #2
anton.dasuik
Пользователь
 
Регистрация: 25.01.2013
Сообщений: 16
По умолчанию Ошибка в коде

Код:
var
   k,i,N,Kh : longint;
   A,B,C : array [1..40] of longint;
   Posa, Posb, Posc : longint;
procedure position(var P1,P2,P3 : array of longint; var Kh,pos1,pos2,pos3 : longint);
begin
 if (P1[pos1] > P2[pos2])   then begin
   Pos3 := Pos3 + 1;
   P3[pos3] := P1[Pos1];
   P1[pos1] := 0;
   Pos1 := Pos1 - 1;
   Kh := Kh + 1;
  end;
end;
BEGIN
 read(N);
 for i := 1 to N  do begin
  A[i]:=i;
 end;
 Kh := 3;
 B[N-1] := 2;
 B[N] := 1;
 A[1] := 0;
 A[2] := 0;
 Posb := 2;
 Posc := 0;
 Posa := 2;

 while  Posc <> N do begin
  position(A,B,C,posa,posb,posc,Kh);
  position(A,C,B,posa,posc,posb,Kh);
  position(B,A,C,posb,posa,posc,Kh);
  position(B,C,A,posb,posc,posa,Kh);
  position(C,B,A,posc,posb,posa,Kh);
  position(C,A,B,posc,posa,posb,Kh);
 end;





writeln(Kh);

END.
Задача «Пизанская башня». Многие из вас следили за события 21 декабря 2012 года, поскольку по календарю индейского племени майа должен был наступить конец света. Известна и другая легенда о Ханойскую башню и конец света. Легенда гласит, что в одном далеком монастыре находится бронзовый диск, на котором закреплены три алмазных стержни. В начале существования человечества, монахи этого монастыря провинились перед богами. Разгневанные боги положили n дисков на один из стержней, все диски имели разные радиусы и были расположены по убыванию радиуса - самый диск лежал снизу, на нем меньше диск, ..., маленький диск располагался сверху. Монахи должны переводить диски между стержнями, причем каждый раз должны класть диск или на пустой стержень, или поверх большего диска. Как только все n дисков будут переведены со стержня, на который боги сложили их, на другой стержень, башня вместе с храмом превратится в пыль и под грохот грома погибнет мир.

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

По легенде, когда все диски будут переведены с первого стержня на третий, Пизанская башня перестанет наклоняться и начнет стоять ровно, а на Земле наступит рай.

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

Формат ввода

В текстовом файле «piza.dat» задали единственное натуральное число n () - количество дисков.

Формат вывода

В текстовый файл «piza.sol» выведите единственное число - минимальное число переложений, необходимое для того, чтобы все диски оказались на третьем стержне.

Например:
3...................5
5.................15
подскажите в чем ошибка плиз
anton.dasuik вне форума Ответить с цитированием
Старый 20.02.2013, 15:38   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Если я правильно понимаю, на центральный стержень (но не с него) можно перекладывать не один диск, а любую стопку - при условии, что прочие правила игры не нарушены. Но это правило изрядно ломает логику игры, поэтому такое решение уже не работает. Точнее, U(m,i,1) выполняется теперь за одно действие.

Так что - по какой логике Вы решали задачу?
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу на паскаль Reedss Помощь студентам 0 07.02.2012 18:22
Написать программу в Паскаль(( Pchelka1992 Помощь студентам 1 02.04.2011 20:05
написать программу. паскаль cherry097 Помощь студентам 2 30.11.2010 00:14