로또는 확률로 계산이 가능할까?
일확천금의 기회 로또 과연 로또는 당첨확률을 높이는 방법이 존재할까?
여러 싸이트 도는 스팸전화로 로또확률을 높여준다며 일명 황금번호를 픽 해줄테니 달마다 얼마를 내라 하는 것을 많이 봤을것이다.
과연 이것이 정말 효과가 있는지 알아보려한다.
나무위키를 참고해보자면 로또번호는 항상 독립된 경우의 수이기 때문에 수학적으로 계산이 불가능하다고 나와있다.
즉 이전에 무슨 번호가 나왔든 영향을 받지 않으며 항상 1/45 * 1/44 * 1/43 * 1/42 * 1/41 * 1/40 = 1/8,145,060 즉 800만분의 1이다.
이렇게 명확하게 나와 있지만 뭔가 찜찜한 기분은 지울 수 없다.
아무리 이전의 상황과 별개로 독립된 새로운 경우라고 해도 이전에 나왔던 번호보다는 새로운 번호가 나올 확률이 더 많을것 같지 않나?
이러한 심리를 이용해 로또번호 추천 사이트 들이 돈을 버는 것이다.
로또번호를 가지고 실험을 하기에는 너무 크기때문에 간단하게 동전의 앞뒤면이 나올 확률을 가지고 실험을 해보려고한다.
여기 동전이 하나 있다. 이 동전들 던져서 앞면 뒷면이 나올 확률을 1/2이다.
백번을 던지든 천번을 던지든 현 상황에서 동전의 앞면 또는 뒷면이 나올 확률은 1/2이다.
그렇다면 동전을 10번 던진다고 할때에 9번이 앞면이 나왔다 그렇다면 10번째에는 뒷면이 나올까 앞면이 나올까?
위에 계속 말하고 있는 사건의 독립성 때문에 1/2라는 결론이 나온다.
하지만 이건 미시적인 현 사건에 대한 것이고 조금더 거시적으로 생각해보자
동전을 10번 던졌을때 앞면이 9번 뒷면이 1번 나올 확률과 앞면이 10번 나올확률 둘중 어느 확률이 더 높을까?
아래의 수치는 자바 코드로 구현한 결과이다.
package test;
public class CoinDraw {
static double RESULT = 0;
static double DRAW_COUNT = 10;
public static void main(String[] args) {
// TODO Auto-generated method stub
double total = 0;
total = squared(2, DRAW_COUNT);
for(int i=0; i<=DRAW_COUNT; i++) {
drowCoin(0,i);
System.out.println("front_" + i + " : " + (RESULT/total)*100);
RESULT = 0;
}
}
//주어진 동전의 앞면이 나올 경우의수
public static void drowCoin(int startNum, int frontCoin) {
if(startNum > DRAW_COUNT)
return;
if(frontCoin == 0) {
RESULT++;
return;
}
drowCoin(startNum+1, frontCoin);
drowCoin(startNum+1, --frontCoin);
}
//제곱
public static double squared(int base, double jisoo) {
double result=1;
for(int i=0; i<jisoo; i++) {
result = result * base;
}
return result;
}
}
front_0 : 0.09765625
front_1 : 0.9765625
front_2 : 4.39453125
front_3 : 11.71875
front_4 : 20.5078125
front_5 : 24.609375
front_6 : 20.5078125
front_7 : 11.71875
front_8 : 4.39453125
front_9 : 0.9765625
front_10 : 0.09765625
보면 전부다 앞면이 나올 확률은 0.097퍼센트, 앞면이 9번나올 확률은 0.97 퍼센트이다. 10배가 높은 수치이다.
그렇다면 앞면이 9번 나왔을때 앞면보다 뒷면이 나올 확률이 더 높을까? 그렇지 않다.
뒷면이 1번 나올 경우의 수는 10개가 존재하지만 마지막에 뒷면이 나오는 경우는 한가지이다. 결국 앞면이든 뒷면이든 1/2확률인 것이다.
결론
정리하자면 동전을 10번 던져서 모두 앞면이 나올 확률보다 앞면이 9번 나올 확률이 10배 더 높다.
하지만 9개의 동전을 던져서 모두 앞면이 나왔을경우 10번째 동전이 뒷면이나올 확률과 앞면이 나올 확률은 같다.
로또도 마찬가지로 독립된 결과이기 때문에 이전의 번호를 분석해도 의미가 없다.
'알고리즘' 카테고리의 다른 글
[프로그래머스] 숫자 변환하기 #bfs #level2 #java (1) | 2024.02.01 |
---|---|
[JAVA] 데이터 크기별 가장 빠른 정렬 (0) | 2023.11.27 |
[백준]소수찾기_1978 #에라토스테네스의 체 #Sieve of Eratosthenes #JAVA (0) | 2022.06.02 |
[백준] 스택수열_1874번 (0) | 2022.05.24 |
[백준] 단어정렬_1181번 (0) | 2022.05.23 |