Lynette Geschrieben 28. August 2005 Geschrieben 28. August 2005 Hallo, ich habe die Aufgabe einen Algo zu konstruieren, eine Art vereinfachtes NIM-Spiel, die Regeln lauten, jeder darf abwechselnd von einem Stapel mindestens einen aber höchstens die Hälfte Streichölzer nehmen, verloren hat, wer das letzte Hölzchen nehem muss. Der Trick dabei soll sein, den Algo so zu formulieren, daß der Computer immer gewinnt. Ich zerbreche mir schon das ganze Woe den Kopf, aber komme nicht recht weiter. mein Ansatz ist folgender wenn z-(z div 2)=3 dann z=z-(z div 2) // damit bekomme ich für 5 und 6 immer drei heraus sonst wenn z mod 2= 0 oder (z=3) dann z:=z-1 //ungerade Zahlen erwirken sonst wenn z mod 2 <>0 dann z:=z-2 klappt aber nicht immer anderer Ansatz wenn z= ungerade z=z-2 wenn z= gerade z=z-1 ausser wenn z= 6, 9 oder 10 z=z-(z div 2) wenn z= 8 z=z-3 das ist aber reichlich unelegant... lt. Lehrer soll die Lösung verblüffend einfach sein aber mir erschliesst sich das noch nicht so. Vielleicht hat einer eine andere Idee? Ich habe auch schon wie wild gegoogelt, aber für den speziellen Fall habe ich nichts gefunden, nur für 'normale' Nim-Spiele. Zitieren
Klotzkopp Geschrieben 28. August 2005 Geschrieben 28. August 2005 Ich glaube, du gehst falsch an die Sache heran. Ich würde zuerst die Gesetzmäßigkeit suchen, und dann dazu einen Algorithmus entwickeln. Finde doch zuerst mal raus, welche Anzahl der Computerspieler übrig lassen muss, um immer zu gewinnen. Die 3 hast du ja offenbar schon gefunden. Dann solltest du dich fragen, ob es eine Anzahl gibt, die der Computerspieler in der vorausgehenden Runde übrig lassen kann, so dass er in der nächsten auf jeden Fall auf 3 kommen kann. Wenn du das ein paar Mal durchspielst, springt dich die Gesetzmäßigkeit praktisch an. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.