From dfe9d7177b76a9dc1d1f020d7d581d32a2a84805 Mon Sep 17 00:00:00 2001 From: vzsky Date: Tue, 9 Sep 2025 19:56:09 +0700 Subject: [PATCH] Add o59_may11_orb --- md/o59_may11_orb.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 md/o59_may11_orb.md diff --git a/md/o59_may11_orb.md b/md/o59_may11_orb.md new file mode 100644 index 0000000..3ca98f0 --- /dev/null +++ b/md/o59_may11_orb.md @@ -0,0 +1,30 @@ +# Exploratory + +ลองคิดในกรณีที่ $N = 2$ ก่อน ให้เริ่มต้นตอนแรกมีสองถ้วยที่มีลูกแก้ว $x$ และ $y$ ลูก +เราจะเห็นว่าหากมีลูกใดลูกหนึ่งเป็น 2 ไม่ว่าอีกลูกหนึ่งจะเป็นอะไร เรา (ผู้เล่น 1) จะสามารถชนะได้โดยการเลือกถ้วยที่มี 2 ลูก แล้วแบ่งเป็น $1$ กับ $1$ ซึ่งจะทำให้ผู้เล่น 2 เล่นต่อไม่ได้ + +ในวิชาทฤษฏีเกม เรามักจะแทน state (สภาวะของเกม ณ เวลาใดเวลาหนึ่ง) ว่าเป็นสเตทที่ชนะ (W) หรือเป็นสเตทที่แพ้ (L) นั่นคือหากผู้เล่นคนใด ได้เล่นเกมในสเตทที่ชนะ เขาจะสามารถชนะได้เสมอ และหากผู้เล่นคนใดได้เล่นในสเตทที่แพ้ เขาจะแพ้เสมอหากอีกฝั่งเล่นได้ดีพอ + +เรารู้แล้วว่า สเตทที่มีลูกแก้วสักแก้ว 2 ลูกเป็นสเตทชนะ และหากทั้งสองแก้วมี 1 ลูกเป็นสเตทแพ้ ในทำนองเดียวกัน หากมีลูกแก้วในถ้วยนึงเป็นจำนวนคู่ สเตทนั้นจะเป็นสเตทชนะ และหากทั้งสองแก้วเป็นจำนวนคี่ สเตทนั้นเป็นสเตทแพ้ + +## Proof + +เราสามารถพิสูจน์ได้โดยการทำ induction โดยจะขอเขียนใหม่เป็นภาษาคณิตศาสตร์ว่า + +> สเตทที่มีลูกแก้วในถ้วยใดถ้วยนึงเป็น $2k$ ลูกจะเป็นสเตทชนะ และหากทั้งสองแก้วเป็นจำนวนคี่ที่น้อยกว่าเท่ากับ $2k-1$ สเตทนั้นเป็นสเตทแพ้ + +เนื่องจากเรารู้ base case ว่าเป็นจริงสำหรับ $k=1$ แล้ว จึงจะสมมติให้ข้อความด้านบนเป็นจริง และต้องพิสูจน์ว่า สเตทที่มีลูกแก้วในถ้วยใดถ้วยนึงเป็น $2k+2$ ลูกจะเป็นสเตทชนะ และหากทั้งสองแก้วเป็นจำนวนคี่ที่น้อยกว่าเท่ากับ $2k+1$ สเตทนั้นเป็นสเตทแพ้ + +เราจะเริ่มจากสเตทที่ทั้งสองถ้วยมีจำนวนคี่ที่น้อยกว่าเท่ากับ $2k+1$ ลูก เมื่อเลือกฝั่งใดฝั่งหนึ่งมา จะเหลือลูกแก้ว อย่างมาก $2k+1$ ลูกและเป็นจำนวนคี่ การแบ่งจำนวนคี่ออกเป็นสองถ้วยจะได้ว่าต้องมีถ้วยหนึ่งเป็นเลขคู่ และเป็นเลขคู่ที่น้อยกว่าเท่ากับ $2k$ จากสมมติฐานจะได้ว่าสเตทที่มีถ้วยใดถ้วยหนึ่งเป็นเลขคู่น้อยกว่าเท่ากับ $2k$ เป็นสเตทชนะ ดังนั้นไม่ว่าจะเล่นเกมอย่างไร สเตทถัดไปจะเป็นสเตทชนะ ดังนั้นสเตทที่ทั้งสองถ้วยมีจำนวนคี่ที่น้อยกว่าเท่ากับ $2k+1$ เลยเป็นสเตทแพ้ + +ถัดมา ในสเตทที่มี $2k+2$ ลูก เราสามารถทิ้งถ้วยอื่น ๆ แล้วแบ่งเป็น $2k+1$ กับ $1$ ลูกได้ ซึ่งเราทราบว่าเป็นสเตทแพ้ ดังนั้นสเตทที่มี $2k+2$ ลูกจึงเป็นสเตทชนะ + +# General Idea + +เราสามารถขยายผลของเคส $N = 2$ ได้โดยไอเดียที่ว่า หากมีสักถ้วยที่มีจำนวนลูก "พอเหมาะ" จะเป็นสเตทชนะ และหากไม่มีสักถ้วยเลยที่มีจำนวนลูกพอเหมาะ จะเป็นสเตทแพ้ โดยนิยามของความ "พอเหมาะ" คือเป็นจำนวนคู่เมื่อ $N = 2$ แต่จะต่างออกไปสำหรับ $N$ ค่าอื่น ๆ + +เมื่อ $N = 3$ เราจะเห็นว่านิยามของความพอเหมาะเปลี่ยนไป คือ $3, 4, 5, 6$ เป็นเลขที่พอเหมาะ เช่นเดียวกับ $9, 10, 11, 12$ ไอเดียของการพิสูจน์คือเช่น หากมีถ้วยที่มี $9$ ลูก เราสามารถทิ้งถ้วยอื่นแล้วแบ่งเป็น $1, 1, 7$ ได้ ซึ่งทั้งสามเลขนั้นเป็นเลขที่ไม่พอเหมาะ $9$ เลยเป็นเลขที่พอเหมาะ หรือเลข $8$ ไม่สามารถเขียนเป็นผลบวก 3 ตัวของเลข $1, 2, 7$ ได้ ดังนั้น $8$ เลยเป็นเลขที่ไม่พอเหมาะ + +เหตุผลนี้สามารถขยายต่อไปกรณีใด ๆ ของ $N$ ได้ ซึ่งเราจะได้ว่าความพอเหมาะนิยามว่า $x$ เป็นเลขที่พอเหมาะเมื่อ $x \cong N, N+1, \dots, N^2-N \pmod{N(N-1)}$ + +เราจึงแก้ปัญหานี้ได้ในเวลา $O(N)$ ต่อเทสเคส