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.