Mai intai trebuie sa te autentifici.
Diferente pentru problema/nim intre reviziile #23 si #17
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="nim") ==
Se dau$n$ grămezi,fiecare conţinândun anumit număr de pietre. Doi jucători vorîncepe săia alternativdin pietre, astfel: la fiecare pas, jucătorul aflat la mutare trebuie să îndepărtezeun număr nenul depietre dintr-o singură grămadă. Câştigătorul este cel care ia ultima piatră.
Se consideră $n$ grămezi de pietre. Doi jucători vor ridica alternativ oricâte pietre dintr-o singură grămadă. Câştigătorul este cel care ia ultima piatră.
h3. Cerinţă
Pentru $t$ configuraţii de joc date, să se determine dacăjucătorul care iaprimelepietreare strategie sigură de câştig.
Pentru $t$ configuraţii de joc date, să se determine dacă primul jucător are strategie sigură de câştig.
h2. Date de intrare
Pe prima linie a fişieruluide intrare $nim.in$seva aflanumărul $t$ deconfiguraţii. Pe următoarele $2*t$ linii se vor afla descrierile jocurilor, astfel: pe linia $2*i$ se va afla numărul $n{~i~}$ de grămezicare alcătuiescjocul $i$, iar pe linia $2*i+1$ se vor afla $n{~i~}$ numere,dimensiunile grămezilor.
Fişierul de intrare $nim.in$ va conţine pe prima linie numărul $t$ de jocuri. Pe următoarele $2*t$ linii se vor afla descrierile jocurilor, astfel: pe linia $2*i$ se va afla numărul $n{~i~}$ de grămezi ale jocului $i$, iar pe linia $2*i+1$ se vor afla $n{~i~}$ numere, reprezentând numărul de pietre din grămezi.
h2. Date de ieşire
În fişierul de ieşire $nim.out$ se vor afişa $t$ linii, pelinia$i$aflându-se mesajul $"DA"$, dacăprimuljucător are strategie sigură de câştigin jocul $i$, respectiv $"NU"$, în caz contrar.
În fişierul de ieşire $nim.out$ se vor afişa $t$ linii, pe fiecare aflându-se mesajul $"DA"$, dacă jucătorul $1$ are strategie sigură de câştig, respectiv $"NU"$, în caz contrar.
h2. Restricţii
* $1 ≤ t ≤ 100$ * $1 ≤ n{~i~} ≤ 10 000$ * Numărul de pietre din oricare grămadă este natural pozitiv mai mic sau egal cu $2 * 10^9^$
* $1 ≤ t ≤ 100$. * $1 ≤ n{~i~} ≤ 10 000$. * Numărul de pietre din oricare grămadă este natural pozitiv mai mic sau egal cu $2 * 10^9^$.
h2. Exemplu
h2. Indicaţii de rezolvare
Jocul imparţial propus în această problemă se numeşte 'jocul NIM':http://en.wikipedia.org/wiki/Nim, stând la baza teoriei jocurilor. Numim stare câştigătoare o configuraţie a grămezilor pentru care primul jucător are strategie sigură de câştig, respectiv stare necâştigătoare o configuraţie pentru care primul jucător va pierde. Se observă că stările câştigătoare corespund situaţiilor în care suma$XOR$a numerelor de pietre din grămezi este mai mare ca$0$.
Jocul imparţial propus în această problemă se numeşte 'jocul NIM':http://en.wikipedia.org/wiki/Nim, stând la baza teoriei jocurilor. Numim stare câştigătoare o configuraţie a grămezilor pentru care primul jucător are strategie sigură de câştig, respectiv stare necâştigătoare o configuraţie pentru care primul jucător va pierde. Se observă că stările câştigătoare corespund situaţiilor în care suma XOR a numerelor de pietre din grămezi este mai mare ca 0.
Pentru a demonstra acest lucru, următoarele condiţii sunt necesare şi suficiente:
# Dintr-o stare cu suma$XOR 0$, se poate ajunge doar în stări cu suma$XOR$pozitivă, sau jocul se termină. Scăzând din orice grămadă o cantitate pozitivă, evident vom schimba configuraţia binară a numărului de pietre cu cel puţin un bit, deci şi suma$XOR$. Jocul se termină când toate grămezile au$0$pietre, deci şi suma$XOR$este$0$. # Dintr-o stare cu suma$XOR$nenulă, se poate ajunge într-o stare cu suma$XOR 0$. Căutăm o grămadă cu un număr$X$de pietre, care are,înreprezentarea sabinară,valoarea$1$pe poziţia bitului cel mai semnificativ al sumei$XOR$,să onotămcu$S$. Din acea grămadă se vor scădea$X - (X XOR S)$pietre,$(X XOR S)$fiind mai mic decât$X$deoarece se anulează bitul cel mai semnificativ al lui$S$. Suma$XOR$rămasă după scădere este egală cu$0$.
# Dintr-o stare cu suma XOR 0, se poate ajunge doar în stări cu suma XOR pozitivă, sau jocul se termină. Scăzând din orice grămadă o cantitate pozitivă, evident vom schimba configuraţia binară a numărului de pietre cu cel puţin un bit, deci şi suma XOR. Jocul se termină cand toate grămezile au 0 pietre, deci şi suma XOR va fi 0. # Dintr-o stare cu suma XOR pozitivă, se poate ajunge într-o stare cu suma XOR 0. Căutăm o grămadă cu un număr X de pietre, care are un bit de 1 pe poziţia bitului cel mai semnificativ al sumei XOR, notată cu S. Din acea grămadă se vor scădea X - (X XOR S) pietre, (X XOR S) fiind mai mic decât X deoarece se anulează bitul cel mai semnificativ al lui S. Suma XOR rămasă după scădere este egală cu 0.
O implementare de $100$ de puncte gasiti 'aici':job_detail/608541?action=view-source.Pentru o demonstraţie mai pe larg şi alte variante de joc NIM, puteţi consulta acest 'articol':http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf, dar si cel despre 'teoria jocurilor':numerele-sprague-grundy de pe infoarena.
Pentru o demonstraţie mai pe larg şi alte variante de joc NIM, puteţi consulta acest 'articol':http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf
h2. Aplicaţii
Nu exista diferente intre securitate.
Diferente intre topic forum:
5874