그 무겁다던 PGR의 write버튼을 이번 기회에 눌러보네요.
이미 식은 떡밥일지도 모르겠고 많으신 수학 전공자분들께서 답을 해주셨기에 이런 행동이 필요할까 싶지만
실제로 알고리즘을 설정해 다음과 같이 프로그래밍 해보았습니다.
우선 알고리즘은 다음과 같습니다.
첫번째로 1~52중 숫자 한개를 뽑고 나머지 숫자중에서 3개를 뽑습니다.
그리고 3개를 확인했는데 만약 다이아라면(여기서 다이아는 1~13까지의 수를 다이아라고 생각하겠습니다.)
처음 뽑은 숫자를 확인, 다이아일경우 다이아 갯수 1증가, 전체갯수 1증가
그숫자가 다이아가 아니면 전체갯수만 1증가
이렇게 전체갯수가 한 10만쯤 될때까지 반복하고 다이아 갯수/전체 갯수 를 구해보았습니다.
소스는 다음과 같습니다.
#include <stdio.h>
#include <Windows.h>
#include <time.h>
int main(){
int total=0, dia=0, one=0, tone=0, ttwo=0, tthree=0;
srand((unsigned)time(NULL));
while(total<1000000){
one=rand()%52+1;
one:
tone=rand()%52+1;
if(one==tone)
goto one;
two:
ttwo=rand()%52+1;
if(one==ttwo||tone==ttwo)
goto two;
three:
tthree=rand()%52+1;
if(one==tthree||tone==tthree||ttwo==tthree)
goto three;
if(tthree<=13 && ttwo<=13 && tone<=13)
{
total++;
if(one<=13)
dia++;
}
}
printf("%lf",(double)dia/(double)total);
getch();
}
그리고 시행한 결과 0.2049라는 값이 나왔고 이 값은 10/49라고 볼 수 있다는 결론이 나왔습니다.
물론 한번으로 판단할수 없기에 100만회도 시행해 보았지만 0.2044로 역시 10/49가 맞음을 알 수 있었습니다.
개인적으로 수학은 자신있었는데 오랜만에 신선한 자극이었네요.
피지알러분들도 머리 정리하시고 그럼 다가오는 3월 힘차게 시작해봅시다!
다들 좋은밤 되세요~
통합규정 1.3 이용안내 인용
"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
이미 지나간 이야기지만 이해도 못해서 며칠 눈팅만 했었는데...
제가 처음 1/4이라 생각했던 이유가 '이때'보다, 먼저 뽑아 상자에 넣었다는 이야기 때문이었는데요..
조커를 뺄 때 같이 빼면 다를까..하다가 먼저 뽑은 카드를 시공간 초월한 어느 공간에 뒀다면 1/4이라고도 생각 할
수 있겠다라는 뻘생각을 해봤네요;;;