2016-07-04 2 views
-2

R 프로그래밍의 새로운 기능입니다. R에서 1 문제를 해결할 필요가 있습니다. R에서 다음 실험을 시뮬레이션해야합니다. 포커 핸드는 52 장의 카드로 구성된 5 장의 카드로 구성되며 카드의 순서는 중요하지 않습니다. 주어진 손에 적어도 한 명의 왕과 적어도 한 명의 여왕이있을 확률을 구하십시오.R 프로그래밍으로 실험 시뮬레이션

나는 적어도 1 명의 왕을 찾는 방법을 알고 있지만, 적어도 1 명의 왕과 적어도 1 명의 왕은 찾고 있지 않습니다. 이어야 킹 코드입니다 :

deck<- rep(1:13 , each=4) 
#here J=11 , Q=12, K=13 
nhands <- 1000 
Xk<- c(rep(-1, nhands)) 
for(i in 1:nhands){ 
hand <- sample(deck , 5 , replace= FALSE) 
numberofK<-0 
for(j in 1:5){ # count Kings 
if(hand[j] == 13){ 
numberofK <- numberofK +1 
} 
} 
#print(numberofK) 
Xk[i] <-numberofK 
#print(hand) 
} 
table(Xk) /nhands 

이 사람이이 일을해야 코딩 좀 도와 주실 래요 .. 감사합니다

+0

이미 여기에서 답변 : https://math.stackexchange.com/questions/541220/what-is-the-probability-of-of-drawing-at-least-one-king-and-one-ace-in -a-five-ca – duffymo

+0

왕이 적어도 한 명이라면 왜 왕들의 수를 추적해야합니까? – Psidom

+0

감사합니다. 나는 대뇌 피질을 알고 있지만 R로 코딩해야하고 R에 익숙하지 않다. – priyanka

답변

2

할 수있는 적어도 킹 또는 퀸을 포함 5 카드의 손의 확률 단순히 any(c(12, 13) ...) 검사 King 여부 Queen하는 손 내에하면서 sample(deck, 5)5 카드의 손을주는 경우, 다음과 같은 기록이 경우는 1000 시뮬레이션 내에서 발생 횟수 sum 카운트 :

set.seed(10) 
sum(sapply(1:100000, function(i) { any(c(12, 13) %in% sample(deck, 5))}))/100000 
# [1] 0.58365 

이론적으로,이 경우의 확률은 다음과 같습니다

(choose(52, 5) - choose(44, 5))/choose(52, 5) 
# [1] 0.5821375 

아주 가까이 있습니다. 그것은 참으로 그리고 적어도 왕과 여왕을 의미 경우

그리고 다른 한편으로

, 시뮬레이션을 제공합니다

set.seed(10) 
sum(sapply(1:100000, function(i) { all(c(12, 13) %in% sample(deck, 5))}))/100000 
# [1] 0.09932 

그리고 이론적 :

(choose(52, 5) - choose(44, 5) - (2*(choose(48, 5) - choose(44, 5))))/choose(52, 5) 
# [1] 0.1001785 

그리고 수를 가깝게 일치합니다.

+0

감사합니다 Psidom. 그러나 대동맥으로이 질문을 풀면 0.58이됩니다. – priyanka

+0

나는 주어진 손에 적어도 한 왕과 적어도 한 왕이있을 확률을 찾고 싶다. – priyanka

+0

그래서'all'은'12'와'13' 둘 다 손안에 있어야한다는 것을 의미합니다. 그렇다면 사실에 관해서는 알 수 없습니다. 그러나 이것에 대한 특별한 문제는 보이지 않지만 나중에 어떻게 업데이트되는지 알고 싶습니다. – Psidom