Aufgabenblatt 3 - Aufgabe 1

  • zuerst einmal ein seas @all,


    entweder ich bin verständnislos, oder die vom institut habens leicht mit den zweideutigen Angaben, wo man jedesmal eine halbe Stunde heruminterpretiern soll und jedes mal Punkteabzug bekommt, weil man falsch interpretiert hat!! die Angabe ist wiedermal nicht 100% ersichtlich,... das nervt schon langsam ...


    ist jetzt bei tvh, gemeint, das jeder Turm fix seinen Namen hat, dh. a = 'A', b = 'B' und c = 'C', ... oder darf der Turm c = 'B' auch heißen ?? ... zumindest einen solchen Testfall hättens ja einbauen können,...


    also ich interpretier das so, dass jeder Turm einen von diesen 3 Buchstaben haben darf, und nicht fix ist .... was meint ihr dazu?


    danke schon mal im vorhinein .... mfg

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • Ich finde das nicht mehrdeutig.


    "Das erste Argument gibt die Anzahl der zu verlegenden Scheiben an, das zweite Argument den Namen des Ausgangsstapels, das dritte Argument den Namen des Zielstapels und das vierte Argument den Namen des Hilfsstapels."


    Es wird also explizit festgelegt von welchem zu welchem Stapel verschoben werden soll. Welcher Turm nun an 1., 2. und 3. Stelle steht ist vollkommen egal, weil ja keine grafische Ausgabe notwendig ist. Du kannst es interpretieren wie du willst: entweder man sagt die Türme werden umbenannt und es wird immer vom 1. zum 3. Stapel verschoben, oder sie behalten ihre Namen und dafür wird von einem beliebigen Start zu einem beliebigen Ziel verschoben. Das ist Interpretationssache, die Implementierung ist für beide Fälle genau die gleiche.

  • es wäre eben nicht die gleiche, denn wenn ich sage, dass


    tvh 2 'A' 'B' 'C' == [('A','C'),('A','B'),('C','B')] erlaubt ist
    tvh 2 'A' 'C' 'B' == [('A','C'),('A','B'),('C','B')] nicht erlaubt ist, dann gibts Punkteabzüge umsonst ! ...


    und das ist nicht aus der Anagbe zu lesen und auch nicht aus den Testfällen, meiner Meinung nach,... vl hab ich da ja auch was missverstanden, aber das was du beschrieben hast Christoph, ist die Reihenfolge der Türme ,... also ganz helle ist mir das irgendwie nicht ....

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • also meine testfälle schauen so aus :


    Main> tvh 3 'A' 'B' 'C'
    [('A','B'),('A','C'),('B','C'),('A','B'),('C','A'),('C','B'),('A','B')]


    Main> tvh 3 'A' 'B' 'c'
    []


    Main> tvh 3 'C' 'A' 'B'
    [('C','A'),('C','B'),('A','B'),('C','A'),('B','C'),('B','A'),('C','A')]


    ---- die Frage war eben, ob die verschiedenen Variationen erlaubt sind ...


    mfg

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • es wäre eben nicht die gleiche, denn wenn ich sage, dass


    tvh 2 'A' 'B' 'C' == [('A','C'),('A','B'),('C','B')] erlaubt ist
    tvh 2 'A' 'C' 'B' == [('A','C'),('A','B'),('C','B')] nicht erlaubt ist, dann gibts Punkteabzüge umsonst ! ...


    Der 1. Testfall ist richtig, aber ich wüsste nicht wie man die Angabe interpretieren sollte so dass auch/stattdessen der 2. richtig ist.



    Würde ich auch sagen.

  • past, dann lass ichs auch so, ... denn anfangs dachte ich, dass
    Main> tvh 3 'C' 'A' 'B'
    []
    zu interpretieren wäre,... aber vl hab ich die sache auch nur unnötig verkompliziert ... danke für deine raschen antworten! MFG

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • hi!


    ich hab folgenden code:


    Quote


    tvh h = tvh' h 'A' 'B' 'C'
    tvh' 0 _ _ _ = []
    tvn' h 'A' 'B' 'C' = (tvh' (h-1) 'A' 'C' 'B') ++ ('A', 'B') : (tvh' (h-1) 'C' 'B' 'A')


    und bekomm folgenden fehler:



    ihr werdets mich jetzt wahrscheinlich alle auslachen aber was muss ich da jetzt genau weiter machen?


    DANKE!!


    lg

    Software is like sex; it`s better when it`s free.

    Linus Torvalds

  • seas,


    ich versteh zwar nicht wozu du tvh' brauchst, ... aber probiers mal mit nem ++ statt dem doppelpunkt ;)


    tvn' h 'A' 'B' 'C' = (tvh' (h-1) 'A' 'C' 'B') ++ ('A', 'B') ++ (tvh' (h-1) 'C' 'B' 'A')


    mfg

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • danke!


    jetzt kommt zumindest mal ne andere fehlermeldung *gg*


    Software is like sex; it`s better when it`s free.

    Linus Torvalds

  • seas,


    ich versteh zwar nicht wozu du tvh' brauchst, ... aber probiers mal mit nem ++ statt dem doppelpunkt ;)


    tvn' h 'A' 'B' 'C' = (tvh' (h-1) 'A' 'C' 'B') ++ ('A', 'B') ++ (tvh' (h-1) 'C' 'B' 'A')


    Nicht ganz, richtig wäre, denke ich:

    Code
    1. tvn' h 'A' 'B' 'C' = (tvh' (h-1) 'A' 'C' 'B') ++ [B][[/B]('A', 'B')[B]][/B] ++ (tvh' (h-1) 'C' 'B' 'A')

    "Well, tough luck! Let's go home and have some pie!"
    "No, Snake! NO pie!"
    "Then the terrorists have already won..."
    | Er - ist - kein - Rentier! (Nur 4 Zeilen in der Sig stinken. :O)

  • *G* ...


    ja genau genommen, gehören da auch variablen rein, und nicht 'A' 'B' ect.
    weil man sonst in der Ausgabe immer wieder dieselben Buchstaben stehen hat, was aber nicht der Sinn der Aufgabe ist .... wollte ihm nur bei der Fehlersuche helfen!! ...


    also richtig wäre: ++ [(a,b)] ++


    ... aber ansonsten schauts in Ordnung aus ...

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p

  • jetzt bin ich wieder selbst verwirrt,... diese scheiss angaben machen mich psychisch depressiv :p ....


    wenn der String nun kein Palindrom enthält, soll da True oder False rauskommen ?? ....


    .... verdammte zweideutigkeit hat bis jetzt bei beiden übungen zu punkteabzügen geführt,... das suckt!



    bin gespannt auf die antworten :D

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p


  • wenn der String nun kein Palindrom enthält, soll da True oder False rauskommen ?? ....


    naja, ein (nichtleerer) string besitzt auf jeden fall zumindest ein palindrom der länge 1... insofern wäre der einzige string, der noch in frage käme, keine palindrome zu besitzen der leerstring, und ob der ein palindrom der länge 0 ist.. naja, darüber kann man wohl streiten (obwohl nach der definition in der angabe, ist er eines, oder siehst du das anders?)



    .... verdammte zweideutigkeit hat bis jetzt bei beiden übungen zu punkteabzügen geführt,... das suckt!


    nur mal interessenshalber, wo hat es bei den ersten beiden beispielen irgendwelche zweideutigkeiten gegeben?


    lg, Christoph

    hi, i'm a signature virus. copy me into your signature to help me spread.

  • da bin ich mir auch überhaupt nicht sicher, aber laut definition ist der leerstring ein palindrom
    also ergibt bei mir palFrei "" n<=0 false, n >= 1 true
    hoffe trotzdem dass auf diesen fall nicht getestet wird

  • Ich hab das mit den Parametern für tvh so verstanden.


    1. Nicht positiv --> 0 ist auch nicht positiv und alle negativen Zahlen natürlich auch


    2. Die Buchstaben für a, b und c müssen unterschiedlich sein, also kein Buchstabe darf öfters als einmal verwendet werden.


    3. Als Buchstaben dürfen 'A','B' oder 'C' verwendet werden.


    Die Regeln hab ich genauso als Funktionen programmiert.


    tvh 2 'A' 'B' 'C' == [('A','C'),('A','B'),('C','B')]
    tvh 2 'C' 'A' 'B' == [('C','B'),('C','A'),('B','A')]
    tvh 0 'A' 'B' 'C' == []
    tvh (-1) 'A' 'B' 'C' == []
    tvh 2 'A' 'A' 'C' == []
    tvh 2 'A' 'B' 'D' == []


  • ... naja, ich seh das so,


    leerstring ist ein palindrom, daher True
    'asdf' ist kein palindrom wenn n > 2 ist
    steht für n eine 0, dann gibt er False aus,....


    so habe ich das der Angabe entnommen,... hoffe, das es diesmal passt

    komplex ist etwas einfach zu halten, was wiederum sehr komplex ist d(o_O)p