Page 27 - W Pogoni Za Nieskonczonością
P. 27

 BIT CZYTA!, ÐE Z ODR# NIKT NIE WYGRA!, A W GRZE ISTNIEJE OPTYMALNA STRATEGIA.
BIT B!YSKAWICZNIE ZAPROGRAMOWA! ALGORYTM SZUKAJ#CY OPTYMALNEJ ODPOWIEDZI NA RUCH PRZECIWNIKA.
...ÐE KTO¬ ZARAZ WEJDZIE PO POKOJU.
MATEMATYK CHARLES L. BOUTON OPRACOWA! NARZ$DZIA
MATEMATYCZNE DO ANALIZY GRY NIM.
POKAZA!, JAK WYGL#DA OPTYMALNA STRATEGIA ORAZ KTÓRY GRACZ WYGRA.
DOWÓD:
ZAUWAÐMY, ÐE NIM-SUMA (+) JEST DZIA!ANIEM !#CZNYM I PRZEMIENNYM,
I SPE!NIA WARUNEK X (+) X = O.
NIECH X1, ..., Xn OZNACZAJ# LICZEBNO¬¬ KUPEK PRZED WYKONANIEM RUCHU, NATOMIAST Y1, ..., Yn OZNACZAJ# ODPOWIEDNIO
LICZEBNO¬¬ PO WYKONANIU RUCHU.
PO!ÓÐMY S = X1 (+) ... (+) Xn I T = Y1 (+) ... (+) Yn. JE¬LI RUCH ZOSTA!...
# macierz możliwych dostępnych pozycji
states <- array("x", c(2,4,6,8))
# stan wygrywający
states[1,1,1,1] = "w"
# stany przegrywające
states[2,1,1,1] = states[1,2,1,1]  = "l"
# znajdź stany prowadzące do porażki przeciwnika
tmp <- which(states == "l", arr.ind = T)
for (i in 1:nrow(tmp)) {
  if (tmp[i,1] < dim(states)[1])
    states[(tmp[i,1]+1):(dim(states)[1]), tmp[i,2],
     tmp[i,3], tmp[i,4]] =
        ifelse(states[(tmp[i,1]+1):(dim(states)[1]),
             tmp[i,2], tmp[i,3], tmp[i,4]] == "x",
             "w",states[(tmp[i,1]+1):(dim(states)[1]),
             tmp[i,2], tmp[i,3], tmp[i,4]])
  if (tmp[i,2] < dim(states)[2])
    states[tmp[i,1], (tmp[i,2]+1):
CA!KOWICIE POCH!ONI$TY PRZEZ PROGRAMOWANIE, NIE ZAUWAÐY! JEDNAK...
CO TU PORABIASZ W ¬RODKU NOCY, BRATKU?!
NO?!
CO TY TU PORABIASZ?!
AAA... NO WI$C, JA TUTAJ...
































































   25   26   27   28   29