Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 7.053 pregleda

Najnovija ↓

Hanojska kula 04.12.2001. u 01:15 · pre 303 meseca #1
Ako nekoga zanima moze da pogleda koliko je to ustvari posla. Ako neko ne znam hanojska kula je na tibetu i recheno je kada se ona slozi doci ce smak sveta. Postoje 3 stuba i na jednom ima 64 diska. Znachi manji na vecem nesme obrnuto. I sada trebaju svi ti diskovi sa jednosh stapa da se prebace na drugi ali nikada nesme da se stavi veci na manji disk. Evo moje resenje ;) Neko moze da compajlira u exe pa da pozove iz dosa hanoj.exe > hanoj.txt chini mi se da se tako sve upisuje u fajl davidite koliko tu poteza ima :) A da nekazem da oni to rade napamet i da greshe i da edan disk prebacuju otprilike jedan dan ;)

Code:

Program Hanojska_Kula;
  var
    brojdiskova,b:Longint;
    SA,NA,POM:Byte;
  Procedure PREBACI(N,SA,NA,POM:integer);
    Begin
      IF N>1
        THEN Begin
               b:=b+1;
               PREBACI(N-1,SA,POM,NA);
               Write('Û',SA,'->',NA);
               PREBACI(N-1,POM,NA,SA);
             END;
    END;
  Begin
    b:=0;
    Writeln;
    Write('Unesi broj diskova: ');Readln(brojdiskova);
    Write('Unesi na kojem su stubu diskovi [1-3]: ');Readln(SA);
    IF (SA>3) or (SA<1) THEN HALT;
    Write('Unesi na koji stub treba da se sloze diskovi [1-3]: ');Readln(NA);
    IF (SA=NA) or (NA>3) or (NA<1) THEN HALT;
    Write('Pomocu kogi stuba treba da se prebace diskovi [1-3]: ');Readln(POM);
    IF (SA=NA) or (SA=POM) or (NA=POM) or (POM>3) or (POM<1) THEN HALT;
    PREBACI(brojdiskova,SA,NA,POM);
    Writeln;
    Writeln('Diskovi su prebaceni u ',b,' poteza');
    readln;
  END.



program ispisuje samo potese tipa 1>2 to znachi sa prvog na drugi disk.
kada ce taj smak sveta :)
Potpis
Jel potpis treba pisanim ili
štampanim slovima?

___________________________________
______
[url=http://www.dizajnzona.com/foru
ms/]dizajnzona.com[/url]
[url=http://www.netizenfaction.com/
]netizenfaction.com[/url]
egoideas.
com

levodesn
o.com
Re: Hanojska kula 21.12.2001. u 20:12 · pre 302 meseca #2
Ama nisi morao da se mučiš da pišeš program. Fromula za izračunavanje broja poteza je 2^n-1 gde je n broj diskova. Do ove formule se lako može doći, zapravo ako ti za n diskova treba x koraka (prebacivanja) onda ti za n+1 disk treba 2x+1 koraka, x koraka da prebacis n diskova na pomoćnu iglu, zatim 1 korak da prebaciš najveći disk na srednju iglu, i još x da prebaciš n diskova sa pomoćne igle na srednju. Indukcijom se može proveriti da se broj koraka određen formulom 2^n-1.

poz.
Re: Hanojska kula 22.12.2001. u 13:28 · pre 302 meseca #3
Citat:
kajla:
Ama nisi morao da se mučiš da pišeš program. Fromula za izračunavanje broja poteza je 2^n-1 gde je n broj diskova. Do ove formule se lako može doći, zapravo ako ti za n diskova treba x koraka (prebacivanja) onda ti za n+1 disk treba 2x+1 koraka, x koraka da prebacis n diskova na pomoćnu iglu, zatim 1 korak da prebaciš najveći disk na srednju iglu, i još x da prebaciš n diskova sa pomoćne igle na srednju. Indukcijom se može proveriti da se broj koraka određen formulom 2^n-1.

poz.


ovaj znam ja to sve :)
ali ovaj program neizrachunava broj koraka nego ispisuje SVE korake :)
Potpis
Jel potpis treba pisanim ili
štampanim slovima?

___________________________________
______
[url=http://www.dizajnzona.com/foru
ms/]dizajnzona.com[/url]
[url=http://www.netizenfaction.com/
]netizenfaction.com[/url]
egoideas.
com

levodesn
o.com
Re: Hanojska kula 24.12.2001. u 17:39 · pre 302 meseca #4
Znam video sam negde slican program...

poz.
Re: Hanojska kula 25.12.2001. u 15:04 · pre 302 meseca #7
Citat:
shaDy:
video sam ja takav u zbirci za prog za III razred srednje.
Cabarkapa

Da,da Milan Cabarkapa mislim da sam u njegovoj knjizi to video.

poz.
Re: Hanojska kula 22.02.2002. u 00:10 · pre 300 meseci #8
a pa chaby je meni bio razredi u Matematichkoj :)

ono kod njega sam pocheo hehe

mnogo gotivan tip ;)
Potpis
Jel potpis treba pisanim ili
štampanim slovima?

___________________________________
______
[url=http://www.dizajnzona.com/foru
ms/]dizajnzona.com[/url]
[url=http://www.netizenfaction.com/
]netizenfaction.com[/url]
egoideas.
com

levodesn
o.com
Re: Hanojska kula 22.02.2002. u 02:21 · pre 300 meseci #9
program hanojska_kula;
var br_diskova:integer,
procedure hanoj(n,sa,na,pom:integer);
begin
if n>0 then
begin
hanoj(n-1,sa,pom,na);
write(sa,'->',na);
hanoj(n-1,pom,na,sa);
end;
end;
begin
writeln('unesi broj diskova');
readln(br_diskova);
hanoj(br_diskova,1,3,2);
end.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme