이 사이트 에이 질문과 유사한 질문이 있지만, 나는 약간의 왜곡을가했습니다.
서클 n 의 인원 수 , 각 단계에서 계산 된 k 번째 사람 및 생존 한 q 번째 사람의 세 가지 입력이 있습니다 . 서클의 사람들은 1부터 n 까지 번호가 매겨집니다 .
예를 들어, 20 명으로 구성된 서클에서 20 번째 생존자는 첫 번째 제거 된 사람이고 19 번째 생존자는 두 번째 제거 된 사람입니다. 일반적으로, 요세푸스의 문제가 결정하는 것입니다 마지막으로 여기라고 사람이 제거 된 첫번째 생존자.
그 3 개 개의 입력과 함께의 수를 반환, 가장 짧은 프로그램이나 기능을 쓰기 Q 살아 남기 위해 번째 사람.
명확성에 문제가 있으면 알려주세요.
몇 가지 예 :
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
편집 : 모든 입력이 유효하다고 가정합니다. 즉, 아무도 0 또는 음수를 요구하지 않으며 5 명 서클에서 20 번째 생존자를 요구하지 않습니다 (즉, 1 ≤ q ≤ n).
편집 : 12 월 2 일 시작 UTC + 7 자정에 답변을 수락합니다.
q=1이것이 연결된 요세푸스 질문과 정확히 동일 하다면 ?
