Uproszczona wersja gry Nim

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
SciTuber
Użytkownik
Użytkownik
Posty: 51
Rejestracja: 19 sty 2016, o 15:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 15 razy

Uproszczona wersja gry Nim

Post autor: SciTuber »

Cześć, chciałbym abyście mnie nakierunkowali na rozwiązanie uproszczonej wersji gry Nim.

Mamy do dyspozycji tylko jeden stos patyczków. Gra polega na wyciąganiu 1, 2 lub 3 patyczków w danym ruchu gracza. Wygrywa ten gracz, który wyciągnie ostatni patyczek.

Z wiki znalazłem takie rozwiązanie: "Wystarczy w pierwszym ruchu zmniejszyć wartość wszystkich stosów (początkowo ai) do (ai modulo k+1)." gdzie k to maksymalna możliwa liczba patyczków do wyciągnięcia w jednym ruchu.

Acz nie do końca rozumiem koncepcji tej wskazówki. Gdy mamy 13 patyczków stos należy zmniejszyć do 1. Ale jak w pierwszym ruchu?

Proszę o jakaś wskazówkę, rade. Rozwiązanie będę implementowal w języku programowania.
Pozdrawiam
Tulio
Użytkownik
Użytkownik
Posty: 125
Rejestracja: 3 cze 2012, o 00:37
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 16 razy
Pomógł: 24 razy

Uproszczona wersja gry Nim

Post autor: Tulio »

Możesz pokazać link do tego wiki? Coś raczej pomyliłeś. Prawdopodobnie chodziło o to by sprawić by kamyczków/patyczków było tyle by reszta z dzielenia dawała \(\displaystyle{ 1}\) lub coś w ten deseń.

Mamy \(\displaystyle{ 5}\) patyczków więc zabierasz jeden i zostaje \(\displaystyle{ 4}\) patyczki \(\displaystyle{ \left( 4 \mod 3 = 1\right)}\). Teraz bez względu na ruch drugiego gracza - wygrywasz.
SciTuber
Użytkownik
Użytkownik
Posty: 51
Rejestracja: 19 sty 2016, o 15:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 15 razy

Uproszczona wersja gry Nim

Post autor: SciTuber »

Tulio pisze:Możesz pokazać link do tego wiki? Coś raczej pomyliłeś. Prawdopodobnie chodziło o to by sprawić by kamyczków/patyczków było tyle by reszta z dzielenia dawała \(\displaystyle{ 1}\) lub coś w ten deseń.

Mamy \(\displaystyle{ 5}\) patyczków więc zabierasz jeden i zostaje \(\displaystyle{ 4}\) patyczki \(\displaystyle{ \left( 4 \mod 3 = 1\right)}\). Teraz bez względu na ruch drugiego gracza - wygrywasz.
Pewnie,

Kod: Zaznacz cały

https://pl.m.wikipedia.org/wiki/Nim
, zakładka "gra z limitem elementów"
Tulio
Użytkownik
Użytkownik
Posty: 125
Rejestracja: 3 cze 2012, o 00:37
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 16 razy
Pomógł: 24 razy

Re: Uproszczona wersja gry Nim

Post autor: Tulio »

To nie Ty pomyliłeś, tylko na wiki jest błąd. W angielskiej wersji jest lepiej i bliżej tego co ja pisałem:

Kod: Zaznacz cały

https://en.wikipedia.org/wiki/Nim


Zakładka (Variations) i pierwsza z nich. Zabrakło na polskiej znaczka \(\displaystyle{ \equiv}\)
SciTuber
Użytkownik
Użytkownik
Posty: 51
Rejestracja: 19 sty 2016, o 15:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 15 razy

Re: Uproszczona wersja gry Nim

Post autor: SciTuber »

Czyli reasumujac po analizie. Idealna strategia to zabieranie n mod (k+1) patyczkow gdzie n to aktualna ich liczba na stosie. Jeżeli wynik n mod (k+1) = 0 to zabieramy k.
Przy idealnej strategii obu graczy możemy określić, kto odniesie zwycięstwo korzystając właśnie z kongurencji modulo n ≡ 0 (mod k + 1) (in normal play). Jeżeli zasada przystawania modulo nie jest spełniona to wygrywa ten kto pierwszy wykona ruch.

Dobrze rozumiem?
Tulio
Użytkownik
Użytkownik
Posty: 125
Rejestracja: 3 cze 2012, o 00:37
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 16 razy
Pomógł: 24 razy

Uproszczona wersja gry Nim

Post autor: Tulio »

Chyba tak, ale używaj LaTeXa bo trudno się czyta i nie mam pewności. Sprawdź swoją teorię dla kilku przypadków.
ODPOWIEDZ