Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Hanojska kula

[es] :: Pascal / Delphi / Kylix :: Hanojska kula

[ Pregleda: 5866 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Toni
Dorćol, Beograd

SuperModerator
Član broj: 15
Poruke: 655
*.verat.net

Jabber: toni@elitesecurity.org
ICQ: 16451419
Sajt: egoideas.com


Profil

icon Hanojska kula04.12.2001. u 00:15 - pre 271 meseci
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 :)
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
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
195.252.103.*



+2 Profil

icon Re: Hanojska kula21.12.2001. u 19:12 - pre 271 meseci
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.
 
Odgovor na temu

Toni
Dorćol, Beograd

SuperModerator
Član broj: 15
Poruke: 655
*.verat.net

Jabber: toni@elitesecurity.org
ICQ: 16451419
Sajt: egoideas.com


Profil

icon Re: Hanojska kula22.12.2001. u 12:28 - pre 271 meseci
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 :)
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
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.dial.InfoSky.Net



+2 Profil

icon Re: Hanojska kula24.12.2001. u 16:39 - pre 271 meseci
Znam video sam negde slican program...

poz.
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
194.106.163.*

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: Hanojska kula24.12.2001. u 19:15 - pre 271 meseci
Možda u udžbeniku iz Struktura Podataka za III godinu ETF-a? ;o)
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

shaDy
Nikola J
-=BGD=-

Član broj: 1507
Poruke: 240
*.drenik.net

Sajt: www.CikloBerza.com


Profil

icon Re: Hanojska kula24.12.2001. u 22:11 - pre 271 meseci
video sam ja takav u zbirci za prog za III razred srednje.
Cabarkapa
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.dial.InfoSky.Net



+2 Profil

icon Re: Hanojska kula25.12.2001. u 14:04 - pre 270 meseci
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.
 
Odgovor na temu

Toni
Dorćol, Beograd

SuperModerator
Član broj: 15
Poruke: 655
*.verat.net

Jabber: toni@elitesecurity.org
ICQ: 16451419
Sajt: egoideas.com


Profil

icon Re: Hanojska kula21.02.2002. u 23:10 - pre 269 meseci
a pa chaby je meni bio razredi u Matematichkoj :)

ono kod njega sam pocheo hehe

mnogo gotivan tip ;)
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
 
Odgovor na temu

Mario
Beograd

Član broj: 1876
Poruke: 986
*.verat.net



+2 Profil

icon Re: Hanojska kula22.02.2002. u 01:21 - pre 269 meseci
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.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Hanojska kula

[ Pregleda: 5866 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.