전제 : 낼 수 있는 횟수가 많을수록 많이 낸다.
예를 들어 바위 3번, 가위 2번, 보 1번 더 낼 수 있으면
바위를 낼 확률은 3/6, 가위는 2/6, 보는 1/6
전략 :
1. 만약 세 개의 횟수가 같은 경우
-> 아무거나 낸다.
2. 두 개가 같고 하나가 두 개보다 작은 경우
-> ex. 바위 2번, 가위 2번, 보 1번 남았을 때, 바위를 낸다.
3. 두 개가 같고 하나가 두 개보다 많은 경우
-> ex. 바위 1번, 가위 1번, 보 2번 남았을 때, 가위를 낸다.
4. 세 개가 다 다르고, 제일 많은 게 두 번째로 많은 걸 이기는 상황
-> ex. 바위 1번, 가위 2번, 보 3번 남았을 때, 가위를 낸다.
5. 세 개가 다 다르고, 제일 많은 게 두 번째로 많은 거에게 지는 상황
-> ex. 바위 1번, 가위 3번, 보 2번 남았을 때
이 때는 가위를 내면 1승2무, 바위를 내면 2승 1패죠. 즉 기댓값이 같습니다.
그러니 패배가 의미가 없는 상황, 즉 바닥이면 바위를 내는 게 이득입니다.
반대로 승리가 의미가 없는 상황, 즉 맨 위면 가위를 내는 게 이득입니다.
나머지는 기댓값이 같기 때문에 아무거나 낸다. (코드에서는 가위)
다른 경우로는 바위 0번, 가위 3번, 보 2번 / 바위 0번, 가위 3번, 보 1번 이 있는데
전자의 경우에는 가위가 2승 3무 (+2), 바위가 3승 2패 (+1)이기 때문에 나머지 경우에 가위를
후자의 경우에는 가위가 1승 3무 (+1), 바위가 3승 1패 (+2)이기 때문에 나머지 경우에 바위를 기본 값으로 낸다.
결론 : 한 판당 약 1506.31포인트 벌리므로, 대략 3판에 45코인정도를 벌 수 있다. 그리고 2천점을 받을 확률은 27.738%로, 3판 중 한 판이라도 2천점을 받을 확률은 62.266%다.
여담으로 전략 5번에 0 3 1경우를 따로 고려하지 않았을 때는 약1503.57 포인트가 벌리므로 손해가 2.74포인트 발생함
노가다한 파이썬 코드랑 스크린샷 첨부해놨습니다.
더 좋은 전략, 코드 지적 환영합니다.