도박 확률 및 소스코드 공개
도박 확률을 조작한다는 잘못된 정보를 생산하는 사용자가 있어서 소스코드를 공개합니다.
- 소스코드
매우 단순한 구조입니다.
실시간으로 확률을 조작하거나, 연속으로 몇 번 성공하면 확률이 내려가게 하거나, 베팅 금액이 얼마 이상일 때 확률이 내려가게 하거나, 특정 사용자의 확률을 낮추거나 할 수 없는 구조입니다.
무엇보다도 가짜 돈이기 때문에 운영자가 조작을 위해 어렵고 복잡하게 만들 동기가 없습니다.
// 도박 처리
Random random = new Random();
int winRoll = random.nextInt(10000);
if (winRoll < 4670) { // 46.70% 확률로 승리
int rewardRoll = random.nextInt(10000);
if (rewardRoll < 9500) { // 95.00% 확률 → 2.0배
multiplier = 2.0;
} else if (rewardRoll < 9800) { // 3.00% 확률 → 3.0배
multiplier = 3.0;
} else if (rewardRoll < 9950) { // 1.50% 확률 → 5.0배
multiplier = 5.0;
} else { // 0.50% 확률 → 10.0배
multiplier = 10.0;
}
reward = (long) (betAmount * multiplier);
}
- SVN 로그
도박 확률과 관련된 부분은 예전부터 현재까지 변경된 적 없습니다.
- 기술적으로 중간에 소스 코드 수정 불가능
도박의 경우 사용자가 조작하지 못하도록 백엔드 서버단에서 처리됩니다.
웹서버는 Tomcat인데(https://www.eoeca.com/test 확인 가능), 이게 안 좋은 점이 백엔드 소스인 JAVA 파일을 수정하려면 Tomcat을 재시작(Reload) 해야 합니다.
모든 채팅 사용자의 채팅(웹소켓) 연결이 끊기게 되고, 일시적으로 웹서비스가 중단됩니다.
해당 시간대인 11월 7일 밤9시부터 해당 시간까지 서비스가 중단된 적 없습니다.
- 도박 확률 (49.4%)
1,000원 베팅 시 1회당 -12원 잃게 되는 구조입니다.
카지노의 바카라와 동일한 수준입니다.
프로그램 상의 승리 확률은 46.70%로 보이지만, 그 안에 3배, 5배, 10배 보상이 있기 때문에, 보상까지 환산하면 승리 확률은 49.4% 입니다.
- 독립시행
도박은 독립시행입니다.
각 게임의 결과는 이전 게임의 영향을 받지 않습니다.
독립 시행이란?
50% 확률 도박에서 이전에 실패가 연속으로 10번, 100번, 1000번 나와도 다음 도박의 확률은 50%로 동일합니다.
50% 확률 도박에서 이전에 성공이 연속으로 10번, 100번, 1000번 나와도 다음 도박의 확률은 50%로 동일합니다.
참고로 10번 연속으로 실패하는 경우도 1/1024으로 다수의 사용자가 매우 여러 번 반복하고 있기 때문에 흔하게 나올 수 있습니다.
- 도박에서 돈 따는 것은 불가능
도박은 매 시행 결과가 이전 결과나 미래 결과에 영향을 미치지 않는 독립적인 확률 게임입니다.
과거의 패턴을 분석하더라도 다음 결과는 여전히 무작위이며 예측 불가능합니다.
수학적으로 플레이어는 조금씩 잃게 되는 구조이고, 카지노는 조금씩 벌게 되는 구조입니다.
수백 명의 여러 참여자 가운데 누군가는 운이 좋아서 일시적으로 돈을 딸 수 있지만, 계속하면 결국은 수학적으로 돈을 잃게 되어 있습니다.
- 향후 도박 확률은 올릴 계획
현재 : 1,000원 베팅시 기대값 -12원 (확률 49.4%)
변경 : 1,000원 베팅시 기대값 -8원 (확률 49.6%)