มีคำถามในไซต์นี้ที่คล้ายกับคำถามนี้ แต่ฉันได้เพิ่มการบิด
คุณมีสามอินพุตจำนวนคนในแวดวงnคนk -th นับในแต่ละขั้นตอนและบุคคลq -th ที่รอดชีวิต คนที่อยู่ในวงกลมที่มีเลข 1 ถึงn
ตัวอย่างเช่นในแวดวงที่มี 20 คนบุคคลที่ 20 เพื่อความอยู่รอดเป็นบุคคลแรกที่ถูกนำออกผู้รอดชีวิตที่ 19 คือคนที่สองที่ถูกนำออกและอื่น ๆ โดยปกติแล้วปัญหาของ Josephus คือการกำหนดคนสุดท้ายที่ถูกนำออกซึ่งเรียกว่าผู้รอดชีวิตคนแรก
เขียนโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดซึ่งอินพุตทั้งสามนั้นคืนค่าจำนวนบุคคลq -th เพื่อเอาชีวิตรอด
หากมีปัญหาใด ๆ ที่มีความชัดเจนโปรดแจ้งให้เราทราบ
ตัวอย่างบางส่วน:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
แก้ไข:สมมติว่าอินพุตทั้งหมดถูกต้อง นั่นคือไม่มีใครจะถาม 0 หรือตัวเลขลบใด ๆ และไม่มีใครจะขอผู้รอดชีวิตคนที่ 20 ในวงกลม 5 คน (นั่นคือ 1 ≤ q ≤ n)
แก้ไข:ฉันจะยอมรับคำตอบตอนเที่ยงคืน UTC + 7 เมื่อเริ่มต้นวันที่ 2 ธันวาคม
q=1นี่เป็นคำถามที่เชื่อมโยงกับฟัสใช่ไหม?
