Avatar billede kokain Nybegynder
02. februar 2003 - 12:39 Der er 25 kommentarer

lave lille program

jeg kan ikke huske hvad det hedder, men ser sådan ud


           
            --                  --                -- 
          ----                -----              ----
          -------            ---------          ------
        ----------          ------------      ----------

så gælder det om at flytte allesammen over på en anden plads, men man må ikke flytte en der er større ovenpå den der ligger der i forvejen.

håber i kender det...

jeg har engang set nogle løse det ved at programøer et lille program hvordan går man det??
Avatar billede kokain Nybegynder
02. februar 2003 - 12:40 #1
hov Sådan så det ikke ud da jeg lavede spørgsmålet
Avatar billede jelzin101 Praktikant
02. februar 2003 - 12:43 #2
;) det hedder towers of hanoi. -har lavet det på et tidspunkt, skal lige støve koden op...
Avatar billede arne_v Ekspert
02. februar 2003 - 12:44 #3
Det hedder "Towers of Hannoi".

Og det er ganske rigtigt en kendt problem-stilling fra diverse
programmerings-kurser.
Avatar billede arne_v Ekspert
02. februar 2003 - 12:45 #4
Avatar billede arne_v Ekspert
02. februar 2003 - 12:47 #5
Avatar billede arne_v Ekspert
02. februar 2003 - 12:48 #6
Avatar billede game_tracker Nybegynder
02. februar 2003 - 12:49 #7
skal di ikke skruge dine point meget ned
Avatar billede arne_v Ekspert
02. februar 2003 - 12:51 #8
Avatar billede arne_v Ekspert
02. februar 2003 - 12:51 #9
Der er masser af forskellige implementeringer.

De rekursive er normalt de simpleste (men ikke nødvendigvis
de hurtigste).
Avatar billede jelzin101 Praktikant
02. februar 2003 - 12:58 #10
fun hanoi(n) =
    let fun move(peg1,peg2,temp,n) =
        if n = 0 then []
        else move(peg1,temp,peg2,n-1) @ [(peg1,peg2)] @ move(temp,peg2,peg1,n-1)
    in move("A","B","C",n)
    end;
Avatar billede jelzin101 Praktikant
02. februar 2003 - 13:02 #11
hov glemte helt : det er en standard ml implementering.
Avatar billede kokain Nybegynder
02. februar 2003 - 13:03 #12
nu kan jeg se alle de forskellige mugeligheder men hvad skal jeg sætte dem ind i for at de virker??
Avatar billede jelzin101 Praktikant
02. februar 2003 - 13:08 #13
mit kan du f.eks. køre med : http://www.dina.dk/~sestoft/mosml.html
Avatar billede arne_v Ekspert
02. februar 2003 - 13:14 #14
Hvis du fortalte hvilket sprog du programmerer i, så kan vi sikkert
give dig et link og fortælle dig, hvordan du builder og kører.
Avatar billede kokain Nybegynder
02. februar 2003 - 13:22 #15
ja jeg kører ikke med noget sporg
Avatar billede arne_v Ekspert
02. februar 2003 - 13:28 #16
Hvad er det så du leder efter ?

Algoritmen skal jo implementeres i et eller andet sprog !

Skal du have noget der kan køres over web eller ... ?
Avatar billede kokain Nybegynder
02. februar 2003 - 13:38 #17
det skal være så jeg kan åbene det som et lille program... ikke på web eller noget andet smart...
Avatar billede arne_v Ekspert
02. februar 2003 - 13:42 #18
ALtså du skal havet et eksekverbart program ?
Avatar billede arne_v Ekspert
02. februar 2003 - 13:43 #19
Skal det vises grafisk hvordan der flyttes rundt eller ... ?
Avatar billede kokain Nybegynder
02. februar 2003 - 13:44 #20
ja....
Avatar billede arne_v Ekspert
02. februar 2003 - 14:47 #21
Der er en på http://cicma.mathstat.concordia.ca/faculty/rhall/hanoi.exe
(men jeg synes ikke at den er god).
Avatar billede kokain Nybegynder
02. februar 2003 - 15:00 #22
tjaaa, nu vil gerne have så jeg selv kan gå ind og lave lidt om på det, og lave se de codes der er og sådan
Avatar billede arne_v Ekspert
02. februar 2003 - 15:16 #23
Hvis du har en tabel med:

id  url    sortid
1    A        1
2    B        2
3    C        3

så henter du data med

SELECT ID,URL FROM T ORDER BY SORTID;

Bemærk du er nødt til at gemme ihvertfald ID
i et array.

Når man så klikker MOVEUP i den n'te række, så laver du:

sortid1 = SELECT SORTID FROM T WHERE ID=id[n-1]
sortid2 = SELECT SORTID FROM T WHERE ID=id[n]
UPDATE T SET SORTID=sortid2 WHERE ID=id[n]
UPDATE T SET SORTID=sortid1 WHERE ID=id[n-1]

og laver en refresh.

Bemærk at du skal sikre dig at 2 brugere ikke kan opdatere de
samme rækker samtidigt !

Hvis man f.eks. gør det på 3. række, så vil man få:

id  url    sortid
1    A        1
2    B        3
3    C        2

og det vil blive vist som:

A
C
B

når de hentes (husk det er ORDER BY SORTID).
Avatar billede arne_v Ekspert
02. februar 2003 - 15:19 #24
Ups. Det svar skulle have være postet til et andet spørgsmål.

:-)
Avatar billede arne_v Ekspert
02. februar 2003 - 15:23 #25
Så skal du tilbage til de oprindelige links og hente et program
i det sprog du kan læse og programmere i og har en compiler til !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester