นี่เป็นการทบทวนคำถามก่อนหน้านี้อีกครั้ง
พิจารณาเกมข้อมูลที่สมบูรณ์แบบที่เป็นกลาง ต่อไปนี้ระหว่างผู้เล่นสองคนคืออลิซและบ็อบ ผู้เล่นจะได้รับการเปลี่ยนแปลงของจำนวนเต็ม 1 ถึง n ในแต่ละเทิร์นหากการเปลี่ยนรูปปัจจุบันเพิ่มขึ้นผู้เล่นปัจจุบันแพ้และผู้เล่นคนอื่นชนะ มิฉะนั้นผู้เล่นปัจจุบันจะลบหนึ่งในตัวเลขและเล่นผ่านไปยังผู้เล่นอื่น อลิซเล่นเป็นอันดับแรก ตัวอย่างเช่น:
(1,2,3,4) - บ๊อบชนะทันทีตามคำจำกัดความ
(4,3,2,1) - อลิซชนะหลังจากสามรอบไม่ว่าใครจะเล่น
(2,4,1,3) - บ๊อบสามารถชนะในรอบแรกได้ไม่ว่าอลิซจะเล่นอย่างไร
(1,3,2,4) - อลิซชนะทันทีโดยลบ 2 หรือ 3; ไม่เช่นนั้นบ๊อบสามารถชนะในเทิร์นแรกของเขาได้โดยการลบ 2 หรือ 3
(1,4,3,2) - ในที่สุดอลิซชนะถ้าเธอใช้ 1 ในเทิร์นแรกของเธอ; ไม่เช่นนั้นบ๊อบสามารถชนะในเทิร์นแรกของเขาได้โดยไม่ลบ 1
มีอัลกอริธึมเวลาพหุนามเพื่อพิจารณาว่าผู้เล่นคนไหนที่ชนะเกมนี้จากการเปลี่ยนแปลงเริ่มต้นที่กำหนดโดยสมมติว่าเป็นการเล่นที่สมบูรณ์แบบ ? โดยทั่วไปแล้วเนื่องจากเป็นเกมที่เป็นกลางมาตรฐานการเปลี่ยนแปลงทุกครั้งมีค่าSprague – Grundy ; ตัวอย่างเช่น (1,2,4,3) มีค่า* 1และ (1,3,2) มีค่า * 2 การคำนวณค่านี้ยากแค่ไหน?
อัลกอริทึมการย้อนรอยที่เห็นได้ชัดทำงานในเวลา O (n!) ถึงแม้ว่าสิ่งนี้จะสามารถลดลงเป็นเวลาผ่านการเขียนโปรแกรมแบบไดนามิก