Zadanie dodatkowe (nieobowiązkowe). Student, który pierwszy
Transkrypt
Zadanie dodatkowe (nieobowiązkowe). Student, który pierwszy
Zadanie dodatkowe (nieobowiązkowe). Student, który pierwszy przyśle mi rozwiązanie tego zadania, dostanie 50p. *Opis gry* Na stole leżą dwa stosy żetonów. Dwóch graczy wykonuje na przemian ruchy. Ruch polega na wybraniu jednego ze stosów i zabraniu z niego pewnej liczby żetonów, która musi być liczbą pierwszą. Na przykład gdy na stosach jest odpowiednio 3 i 4 żetony (co oznaczymy przez (3, 4)), to pierwszy gracz może doprowadzić do sytuacji: (1, 4), (0, 4), (3, 2), (3, 1). Przegrywa gracz, który nie może wykonać poprawnego ruchu. *Zadanie* Napisz funkcję gra(a, b), która sprawdza, czy w sytuacji (a, b) pierwszy gracz ma strategię wygrywającą; przy tym: - jeśli pierwszy gracz ma taką strategię, to funkcja ma zwrócić parę liczb (a2, b2), opisującą sytuację po pierwszym (wygrywającym) ruchu pierwszego gracza - w przeciwnym razie funkcja ma zwrócić None. Możesz założyć, że liczby a, b są mniejsze niż 900. Na przykład: gra(1, 6) ma zwrócić na przykład (1, 1) gra(2, 2) ma zwrócić None gra(10, 15) ma zwrócić na przykład (10, 10)