Zahlenspiel

Hallo,
angeregt durch ein Posting in einen anderen Forum, bin ich zu folgenden Zahlenspiel gekommen.

Variante 1:
Zwei Spieler spielen nach Wahl einer zufällig bestimmten natürlichen Zahl n nach folgenden Spielregeln:

o Ein Zug entsteht durch Abziehen eines zulässigen Teilers der aktuellen Zahl (anfangs n). Die daraus resultierende Zahl, wird zur neuen aktuellen Zahl.
o Zulässige Teiler einer Zahl sind alle Teiler dieser Zahl, ausgenommen sie selbst.
o Es wird wird abwechselnd gezogen.
o Verloren hat, wer nicht mehr ziehen kann.

Bsp: Die 8 wird gewählt:
8 hat die zulässigen Teiler 1,2,4.
A kann damit zu 8-1=7,8-2=6 und 8-4=4 übergehen. Er wählt die 6.
B stehen nun die Möglichkeiten 6-1=5,6-2=4,6-3=3 zur Auswahl. Er wählt die 3.
A muß 3-1=2 wählen.
B wählt 2-1=1
A hat verloren.

Hätte A gewinnen können ?

Variante 2:
Wie Variante 1, nur daß bei den zulässigen Teilern zusätzlich die 1 entfällt.

Bsp. Es wird wieder die 8 gewählt:
8 hat die zulässigen Teiler 2 und 4.
A kann damit zu 8-2=6 und 8-4=4 übergehen. Er wählt die 6.
B stehen nun die Möglichkeiten 6-2=4 und 6-3=3 zur Auswahl. Er wählt die 4.
A muß 4-2=2 wählen.
B hat verloren.

Hätte B gewinnen können ?

Die allgemeine Frage: Für welche Anfangszahlen gibt es eine Gewinnstrategie bei Variante1 resp. Variante2 des Spiels, für denjenigen der änfangt ?

Gruss
Enno

Lösung Variante 1
Hallo,

Für Variante 1 habe ich folgendes herausgefunden:

Ein Spieler kann genau dann den Sieg erzwingen, wenn er eine gerade Zahl vorfindet (bei einer ungeraden Zahl kann nur dann der Gegner den Sieg erzwingen).

Beweis durch vollständige Induktion:

1. Schritt:
Die 1 verliert, denn die 1 hat nur den Teiler 1, der ja nicht zulässig ist.
Die 2 gewinnt, denn ich kann den Teiler 1 abziehen woraufhin die 1 übrigbleibt, von der ich soeben gezeigt habe, dass diese verliert.

2. Schritt:
Sei für die Menge N(n)={1,2,3,…,2*n) gezeigt, dass in ihr sämtliche geraden Zahlen zum Sieg und sämtliche ungeraden Zahlen zur Niederlage führen. Dann git für die Zahlen 2*n+1 und 2*n+2:
2*n+1 ist ungerade, hat somit nur ungerade Teiler. Also muss von 2*n+1 eine ungerade Zahl m abgezogen werden. Die Differenz zweier ungerader Zahlen ist aber gerade, also ist d=2*n+1-m eine gerade Zahl mit d≤2*n∈N(n). Folglich führt d zum Sieg für den Gegener, und also 2*n+1 zum Verlust für mich.
Nun ist es sehr leicht zu zeigen, dass 2*n+2 zum Sieg führt. Ich ziehe einfach die 1 ab und erhalte 2*n+1, wovon ich soeben gezeigt habe, dass diese Zahl verliert. Also gewinnt 2*n+2.
Wenn also in N(n) alle ungeraden Zahlen verlieren und alle geraden Zahlen gewinnen, so gilt diese Eigenschaft auch für N(n)∩{2*n+1,2*n+2}=N(n+1).

3. Schritt:
In Schritt 1 habe ich gezeigt, dass in N(1)={1,2) alle ungeraden Zahlen verlieren und alle geraden Zahlen gewinnen.
In Schritt 2 habe ich gezeigt, dass in N(n+1) alle ungeraden Zahlen verlieren und alle geraden Zahlen gewinnen, falls dies für N(n) gilt.
Somit folgt nach dem Prinzip der vollständigen Induktion, dass für sämtliche natürlichen Zahlen gilt, dass die ungeraden Zahlen verlieren und die geraden Zahlen gewinnen.

Viele Grüße
Jens

Lösung Variante 2
Hallo,

und hier noch mein Vorschlag für Variante 2:

Eine Gewinnsituation liegt genau dann vor, wenn die Zahl n gerade ist und n sich nicht darstellen lässt als n=2^k mit k ungerade (D.h. n verliert, falls n ungerade ist oder wenn n eine Zweierpotenz ist mit ungeradem Exponenten).

Beweis durch vollständige Induktion:

Sei M die Menge aller derjenigen natürlichen Zahlen n, für die die Menge N(n)={1,2,3,…,2*n) die Eigenschaft hat, dass in ihr alle ungeraden Zahlen sowie alle Zweierpotenzen mit ungeradem Exponenten verlieren und alle geraden Zahlen gewinnen, die keine Zweierpotenzen mit ungeradem Exponenten sind.
Dann lautet meine Behautung: M=Menge der natürlichen Zahlen.

Schritt 1:
1 ist ungerade und 1 verliert, denn es gibt keinen zulässigen Teiler.
2 ist eine Zweierpotenz mit ungeradem Exponenten und 2 verliert, denn es gibt auch hier keinen zulässigen Teiler.
Somit ist 1∈M.

Schritt 1:
Sei n∈M. Ich zeige nun, dass dann auch n+1∈N gilt.

Zunächst wird 2*n+1 untersucht. Es muss ein Teiler m abgezogen werden, der größer als 1 und kleiner als 2*n+1 ist. Da 2*n+1 ungerade ist, ist m ebenfalls ungerade und d=2*n+1-m ist gerade. d ist zwar gerade, kann aber keine Zweierpotenz sein, was man wie folgt sieht: Da m ein echter Teiler von 2*n+1 ist, ist m auch ein echter Teiler von d=2*n+1-m. Wäre nun d eine Zweierpotenz, so müsste m ein echter Teiler einer Zweierpotenz sein, also wäre m gerade. Als Teiler der ungeraden Zahl 2*n+1 ist m aber ungerade. d ist also eine gerade Zahl, die nicht Zweierpotenz ist, also erst recht nicht Zweierpotenz mit ungeradem Exponenten. Somit ist d eine Gewinnzahl für den Gegner und 2*n+1 eine Gewinnzahl für mich.

Jetzt wird 2*n+2 untersucht. Hierbei sind 3 Fälle zu unterscheiden.
i) 2*n+2 ist Zweierpotenz mit ungeradem Exponenten
ii) 2*n+2 ist Zweierpotenz mit geradem Exponenten
iii) 2*n+2 ist keine Zweierpotenz.

Zu i) 2*n+2 hat nur gerade Teiler m, also ist d=2*n+2-m gerade. Da 2*n+2 eine Zweierpotenz ist, ist d genau dann eine Zweierpotenz, wenn m=n+1 ist. Für m≠n+1 ist d also eine gerade Zahl, die nicht Zweierpotenz ist. Für m=n+1 ist d zwar eine Zweierpotenz, aber der Exponent ist gerade, da 2*n+2=2*(n+1) eine Zweierpotenz mit ungeradem Exponenten ist. Egal welchen Zug ich ziehe, die Zahl d ist immer eine gerade Zahl, die keine Zweierpotenz mit ungeradem Exponenten ist. Wegen n∈M, führt also jeder legale Zug zu einer Gewinnsituation des Gegners und somit ist 2*n+2 eine Verlustzahl.

Zu ii) m=n+1 ist Teiler von 2*n+2, also kann ich den Zug d=2*n+2-m=n+1 ziehen. Da 2*n+2 eine Zweierpotenz mit geradem Exponenten ist, ist n+1 eine Zweierpotenz mit ungeradem Exponenten. Also habe ich mit d einen Zug gefunden, bei dem mein Gegner eine Verluststellung vorfindet (beachte n∈M). Also ist 2*n+2 eine Gewinnzahl.

Zu iii) Da 2*n+2 keine Zweierpotenz ist, gibt es einen ungeraden Teiler m, so dass d=2*n+2-m ungerade ist. Wegen n∈M führt somit d zu einer Verluststellung für meinen Gegner, also ist 2*n+2 eine Gewinnzahl.

Insgesamt habe ich also für 2*n+2 gezeigt, dass 2*n+2 eine Gewinnzahl ist, wenn sie keine Zweierpotenz mit ungeradem Exponenten ist. Also ist n+1∈M.

Schritt 3:
In Schritt 1 habe ich gezeigt, dass 1∈M.
In Schritt 2 habe ich gezeigt, dass n∈M impliziert, dass auch n+1∈&M gilt.
Nach dem Prinzip der vollständigen Induktion sind also M und die Menge der natürlichen Zahlen identisch.

w.z.b.w.

Viele Grüße
Jens

P.S. Wer meine Behauptung (trotz Beweis) nicht glaubt, kann ja folgendes c++ Programm compilieren und ausführen. Es berechnet für alle natürlichen Zahlen n∈{1,…,N}, ob n eine Gewinnzahl (1) oder eine Verlustzahl (0) ist.

#include 
using std::cout;
using std::cin;
using std::endl;
#include 
using std::vector;

void check(vector& field, long int n);
void show(vector field);

int main(void)
{
 bool weiter=false;
 do
 {
 long int N=0;
 cout \> N;
 if ( weiter = (N != 0) );
 {
 vector field;
 for (long int n=1; n& field, long int n)
{
 bool victory=false;
 for (long int teiler=2; teiler field)
{
 long int n=0;
 for ( vector::iterator i = field.begin(); i != field.end(); i++ )
 cout 

Perfekt
… bestens.

Gruss
Enno

Ebenfalls perfekt …
Hallo Jens,
ebenfalls wieder sauber gelöst. Wenn man diese Spiele dahingehend abstrahiert, daß von einer Zahl n immer nur Zahlen von 1 bis n-1 abgezogen werden dürfen, festgelegt durch z.B.

f: N -> P(N)
(in Variante 2 z.B. f(n)={k | 2