여러 주사위의 결과 분포를 쉽게 결정하는 방법은 무엇입니까?
On 2월 13, 2021 by admin총 주사위 조합에 대한 확률 분포를 계산하고 싶습니다.
확률은 총 조합 수에 대한 조합의 수라는 것을 기억합니다 (주사위가 균일 한 분포를 갖는다 고 가정).
공식은 무엇입니까?
- 총 조합 수
- 특정 수를 합한 조합 수
댓글
- $ (X_1 = 1, X_2 = 2) $ 및 $ (X_1 = 2, X_2 = 1) $를 다르게 취급해야한다고 생각합니다. 이벤트.
답변
정확한 솔루션
$ n $ 던지기의 조합 수는 물론 $ 6 ^ n $ .
이 계산은 하나의 주사위에 대한 확률 생성 함수를 사용하여 가장 쉽게 수행됩니다.
$$ p (x) = x + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 = x \ frac {1-x ^ 6} {1-x}. $$
(실제로 이것은 pgf의 $ 6 $ 배입니다. $ 6 $ .)
$ n $ 롤의 pgf는 $ p (x) ^ n $ . 우리는 이것을 이항 정리를 사용하여 상당히 직접적으로 계산할 수 있습니다. 이것은 닫힌 형태는 아니지만 유용한 것입니다. 이항 정리 :
$$ p (x ) ^ n = x ^ n (1-x ^ 6) ^ n (1-x) ^ {-n} $$
$ $ = x ^ n \ left (\ sum_ {k = 0} ^ {n} {n \ choose k} (-1) ^ kx ^ {6k} \ right) \ left (\ sum_ {j = 0} ^ { \ infty} {-n \ choose j} (-1) ^ jx ^ j \ right). $$
$ m $ 는이 제품에서 $ x ^ m $ 의 계수이며, 다음과 같이 분리 할 수 있습니다.
$$ \ sum_ {6k + j = m-n} {n \ choose k} {-n \ choose j} (-1) ^ {k + j} . $$
합계는 음이 아닌 모든 $ k $ 및 $ j입니다. $ 6k + j = m-n $ 인 경우 $ ; 따라서 유한하며 약 $ (m-n) / 6 $ 용어 만 있습니다. 예를 들어, $ n = 3 $ 에서 던진 총 $ m = 14 $ 의 수는 다음과 같습니다. 두 용어의 합계. $ 11 = 14-3 $ 는 $ 6 \ cdot 0 + 11 $로만 쓸 수 있기 때문입니다. 및 $ 6 \ cdot 1 + 5 $ :
$$-{3 \ 0} {-3 \ choose 11} + {3 \ choose 1} {-3 \ choose 5} $$
$$ = 선택 1 \ frac {(-3) (-4) \ cdots (-13)} {11!} + 3 \ frac {(-3) (-4) \ cdots (-7)} {5!} $$
$$ = \ frac {1} {2} 12 \ cdot 13-\ frac {3} {2} 6 \ cdot 7 = 15 . $$
(또한 영리 할 수 있으며 $ m = 7 $ 에 대한 답변은 다음과 같습니다. 대칭 1 <-> 6, 2 <-> 5, 3 <-> 4 개로 확장 할 수있는 유일한 방법은 $ 7입니다. -3 $ ( $ 6k + j $ ) 즉, $ k = 0 $ 및 $ j = 4 $ 로
$$ {3 \ choose 0} {-3 \ choose 4} = 15 \ text {.} $$
따라서 확률은 다음과 같습니다. $ 15 / 6 ^ 3 $ = $ 5/36 $ , 약 14 %.
이게 고통스러워 질 때까지 Central Limit Theorem은 좋은 근사치를 제공합니다 (적어도 $ m $ 가 $ \ frac {7 n} {2}-3 \ sqrt {n} $ 및 $ \ frac {7 n} {2} + 3 \ sqrt { n} $ : 상대적으로 꼬리 값에 대해 제공하는 근사치는 $ n $ 이 커짐에 따라 점점 더 나빠집니다.
이 공식은 Wikipedia 기사 Srikant 참고 문헌에 나와 있지만 정당화가 제공되지 않으며 예제도 제공되지 않습니다. 이 접근 방식이 너무 추상적으로 보인다면 좋아하는 컴퓨터 대수 시스템을 실행하고 $ n ^ {\ text {th}} $ 의 힘을 확장하도록 요청하세요. class = “math-container”> $ x + x ^ 2 + \ cdots + x ^ 6 $ : 전체 값 집합을 즉시 읽을 수 있습니다. 예 , Mathematica 한 줄짜리는
With[{n=3}, CoefficientList[Expand[(x + x^2 + x^3 + x^4 + x^5 + x^6)^n], x]]
댓글
- 그 mathematica 코드가 wolfram 알파와 함께 작동합니까?
- 작동합니다. 이전 버전을 사용해 보았지만 출력을 이해할 수 없었습니다.
- @Srikant : Expand [Sum [x ^ i, {i, 1,6}] ^ 3]은 WolframAlpha에서도 작동합니다.
- @ A.Wilson 이러한 참고 문헌 중 많은 부분을 믿습니다. 일반화에 대한 명확한 경로를 제공하십시오.이 예에서는 $ (x + x ^ 2 + \ cdots + x ^ 6) (x + x ^ 2 + x ^ 3 + x ^ 4) ^ 3 $입니다.
R
코드에서 이러한 사항을 계산하려면 stats.stackexchange.com/a/116913 에서 완전히 구현 된 시스템. 또 다른 예로 Mathematica 코드는Clear[x, d]; d[n_, x_] := Sum[x^i, {i, 1, n}]; d[6, x] d[4, x]^3 // Expand
- @whuber ‘ s 설명은 1d6 + 3d4에 대한 것입니다. 임의의 wdn + vdm의 경우 (x + x ^ 2 + … + x ^ w) ^ n (x + x ^ 2 + … + x ^ v) ^ m. 추가 용어는 동일한 방식으로 구성되고 곱한 다항식입니다.
입니다.
답변
주사위 굴림의 확률 분포를 신속하게 계산하는 것은 그 목적을 위해 설계된 특수 계산기를 사용하는 것입니다.
Torben Mogensen , CS DIKU 의 교수는 트롤 이라는 훌륭한 주사위 롤러를 가지고 있습니다.
Troll 주사위 롤러 및 확률 계산기는 다양한 복잡한 주사위 굴림 메커니즘에 대한 확률 분포 (pmf, 히스토그램 및 선택적으로 cdf 또는 ccdf), 평균, 스프레드 및 평균 편차를 인쇄합니다. 다음은 Troll의 주사위 굴리기 언어를 보여주는 몇 가지 예입니다.
6면 주사위 3 개를 굴리고 합계 : sum 3d6
.
6면 주사위 4 개를 굴리고 가장 높은 3 개 주사위를 합산합니다. sum largest 3 4d6
“폭발하는”6면 주사위를 굴립니다 (즉, “6”이 나오면 합계에 6을 더하고 다시 굴립니다.) : sum (accumulate y:=d6 while y=6)
.
트롤의 SML 소스 코드 는 구현 방법을 확인하려는 경우 사용할 수 있습니다.
Morgensen 교수도 29 페이지 분량의 논문, “ RPG의 주사위 굴리기 메커니즘 “에서 그는 Troll이 구현 한 여러 주사위 굴리기 메커니즘과 그 뒤에 숨겨진 일부 수학에 대해 설명합니다.
비슷한 무료 오픈 소스 소프트웨어는 Linux와 Windows 모두에서 작동하는 Dicelab 입니다.
답변
조합 또는 확률을 계산하는 매우 깔끔한 방법이 있습니다. 컨볼 루션을 직접 계산하는 스프레드 시트 (예 : Excel)의 항목.
나는 확률의 관점에서 이것을하고 6면 주사위에 대해 설명 할 것이지만, 당신은 여러면이있는 주사위에 대해 할 수 있습니다 (다른면을 추가하는 것을 포함).
( btw 그것은 convolution을 할 R이나 matlab과 같은 것에서도 쉽습니다.)
몇 개의 열에서 깨끗한 시트로 시작하고 위에서 여러 행 (6 개 이상)으로 이동합니다. .
-
셀에 값 1을 입력합니다. 이것이 0 개의 주사위와 관련된 확률입니다. 왼쪽에 0을 넣으십시오. 이것이 값 열입니다. 필요한만큼 1,2,3을 아래로 내려가십시오.
-
한 열을 오른쪽으로 이동하고 “1”에서 한 행 아래로 이동합니다. 수식 “= sum (“을 입력 한 다음 왼쪽 화살표 위쪽 화살표 (1이있는 셀 강조 표시), “:”(범위 입력 시작)를 누른 다음 위쪽 화살표를 5 번 누른 다음 “) / 6 “을 입력하고 Enter 키를 누르면
=sum(c4:c9)/6
와 같은 수식이 표시됩니다 (여기서C9
는 1이있는 셀). .그런 다음 수식을 복사하여 그 아래의 5 개 셀에 붙여 넣습니다. 각각 0.16667 (ish)을 포함해야합니다.
이 수식을 빈 셀에 입력하지 마십시오. 참조!
-
해당 값 열의 상단에서 1 아래로 오른쪽 1로 이동하여 붙여 넣으세요 …
… 총 11 개의 값이 추가됩니다. 이는 두 개의 주사위에 대한 확률입니다.
너무 많이 붙여 넣으면 0이됩니다.
-
주사위 3 개에 대해 다음 열에 대해 3 단계를 반복하고 주사위 4 개, 5 개 등에 대해 다시 3 단계를 반복합니다.
여기서 4d6에 $ 12 $를 굴릴 확률은 0.096451입니다 ($ 4 ^ 6 $를 곱하면 정확한 분수로 쓸 수 있습니다).
Excel에 능숙한 경우-셀에서 수식을 복사하여 여러 셀에 붙여 넣기 등 열에서 약 1 분 내에 최대 10d6까지의 모든 테이블을 생성 할 수 있습니다 ( “몇 번 수행 한 경우 더 빠름).
대신 조합 수를 원하는 경우 확률은 6으로 나누지 마십시오.
면 수가 다른 주사위를 원한다면 $ k $ (6 개가 아닌) 셀을 합한 다음 $ k $로 나눌 수 있습니다. 여러 열에 주사위를 섞을 수 있습니다 (예 :d6 + d8에 대한 확률 함수를 얻기 위해 d6에 대한 열과 d8에 대한 열 수행) :
의견
- 이는 저와 같은 사람이 이해할 필요없이 할 수있는 방법을 원하는 사람에게 매우 유용합니다. ‘
OFFSET()
함수의 변동성을 신경 쓰지 않는다면 명명 된 범위를 사용하여이를 동적으로 만들 수 있습니다. 예를 들어DiceSize
라는 범위를 만들어 변의 수를 유지하고 첫 번째 ” 1 ” B23의 확률.=OFFSET('Dice Rolls'!$A$22,-1*DiceSize,,DiceSize,1)
를 참조하는 KingSum이라는 동적 이름 범위를 사용했습니다. 그런 다음 Cell C23의 수식=SUM(OFFSET(KingSum,ROW(A1),COLUMN(A1)))/DiceSize
를 사용하여 넓은 영역 전체로 드래그하여 DiceSize에 의존하는 테이블을 제공 할 수 있습니다.
답변
$ \ newcommand {red} {\ color {red}} $ $ \ newcommand {blue} {\ color {blue}} $
첫 번째 주사위를 빨간색으로, 두 번째 주사위를 검은 색으로 둡니다. 그러면 36 개의 가능한 결과가 있습니다.
\ begin {array} {c | c | c | c | c | c | c} & 1 & 2 & 3 & 4 & 5 & 6 \\\ hline \ red {1} & \ red {1}, 1 & \ red {1}, 2 & \ red {1}, 3 & \ red {1}, 4 & \ red {1}, 5 & \ red {1}, 6 \\ & \ 파란색 {^ 2} & \ blue {^ 3} & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} \\\ hline \ 빨간색 {2} & \ red {2}, 1 & \ red {2}, 2 & \ red {2}, 3 & \ red {2}, 4 & \ red {2}, 5 & \ red {2}, 6 \\ & \ blue {^ 3} & \ blue {^ 4}
\ blue {^ 5} & \ blue {^ 6} & \ blue { ^ 7} & \ blue {^ 8} \\\ hline \ red {3} & \ red {3}, 1 & \ red {3}, 2 & \ red {3}, 3 & \ 빨강 {3}, 4 & \ red {3}, 5 & \ red {3}, 6 \\ & \ blue {^ 4} & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8} & \ blue {^ 9} \\\ hline \ red {4} & \ red {4}, 1 & \ red {4}, 2 & \ red {4}, 3 & \ red {4}, 4 & \ red {4}, 5 & \ red {4}, 6 \\ & \ blue {^ 5} & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8 } & \ 파란색 {^ 9} & \ blue {^ {10}} \\\ hline \ red {5} & \ red {5 }, 1 & \ red {5}, 2 & \ red {5}, 3 & \ red {5}, 4 & \ red {5}, 5 & \ red {5}, 6 \\ & \ blue {^ 6} & \ blue {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} \\\ hline \ red {6} & \ red {6}, 1 & \ red {6}, 2 & \ red {6}, 3 & \ red {6}, 4 & \ red {6}, 5 & \ red {6}, 6 \\ & \ 파란색 {^ 7} & \ blue {^ 8} & \ blue {^ 9} & \ blue {^ {10}} & \ blue {^ {11}} & \ blue {^ {12} } \\\ hline \ end {array}
각 이 36 개 ($ \ red {\ text {red}}, \ text {black} $) 결과는 똑같이 가능합니다.
얼굴의 숫자를 합하면 (총 $ \ blue {\ text) {blue}} $), 여러 (빨간색, 검은 색) 결과가 동일한 합계를 얻습니다. 질문의 표에서이를 볼 수 있습니다.
예를 들어 하나만 있습니다. 총 $ 2 $를 얻는 방법 (예 : 이벤트 ($ \ red {1}, 1 $)) 만 가능하지만 $ 3 $를 얻는 방법에는 두 가지 가 있습니다 (예 : 기본 이벤트 ($ \ red {2}, 1 $) 및 ($ \ red {1}, 2 $)). 따라서 총 $ 3 $는 $ 2 $의 2 배가됩니다. 마찬가지로 $ 4 $를받는 세 가지 방법, $ 5 $를받는 네 가지 방법 등이 있습니다. .
이제 36 개의 가능한 (빨간색, 검은 색) 결과가 있으므로 모든 다른 합계를 얻는 총 방법 수도 36이므로 마지막에 36으로 나누어야합니다. 총 확률은 1이 될 것입니다.
댓글
- 와, 테이블이 아름답습니다!
- 정말 예쁘다
답변
대략적인 솔루션
앞에서 정확한 솔루션을 설명했습니다 (아래 참조). 이제 귀하의 요구에 더 잘 맞는 대략적인 솔루션을 제공 할 것입니다.
Let :
$ X_i $는 $ i = 1, … n $ 인 $ s $면 주사위를 굴린 결과입니다.
$ S $는 모든 $ n $ 주사위의 합계입니다.
$ \ bar {X} $는 샘플 평균입니다.
정의에 따라 다음과 같은 값이 있습니다.
$ \ bar {X} = \ frac {\ sum_iX_i} {n} $
즉,
$ \ bar {X} = \ frac {S} {n} $
이제 아이디어는 $ n $ 주사위를 던진 결과 대신 $ n $ 번 같은 주사위를 던진 결과로 $ {X_i} $를 관찰하는 과정을 시각화하는 것입니다. 따라서 중앙 극한 정리 (이산 분포에서 연속 분포로 이동하는 것과 관련된 기술 무시)를 호출 할 수 있습니다. $ n \ rightarrow \ infty $ :
$ \ bar {X} \ sim N ( \ mu, \ sigma ^ 2 / n) $
여기서
$ \ mu = (s + 1) / 2 $는 단일 주사위 굴림의 평균이고
$ \ sigma ^ 2 = (s ^ 2-1) / 12 $는 관련 분산입니다.
위는 기본 분포 인 $ X_i $가 이산을 갖기 때문에 분명히 근사치입니다. 지원하다.
하지만
$ S = n \ bar {X} $.
따라서 다음과 같은 이점이 있습니다.
$ S \ sim N (n \ mu, n \ sigma ^ 2) $.
정확한 솔루션
Wikipedia 에는 필요한 확률을 계산하는 방법에 대한 간단한 설명이 있습니다. 왜 거기에 설명이 타당한 지에 대해 좀 더 자세히 설명하겠습니다. 가능한 한 Wikipedia 기사와 유사한 표기법을 사용했습니다.
$ s $ 개의 얼굴을 가진 $ n $ 개의 주사위가 있고 모든 $ n의 단일 주사위가 나올 확률을 계산한다고 가정합니다. $ 주사위 합계는 $ k $가됩니다. 접근 방식은 다음과 같습니다.
정의 :
$ F_ {s, n} (k) $ : $를 한 번 굴려서 총 $ k $를받을 확률 $ s $ 개의 얼굴이있는 n $ 개의 주사위.
정의에 따라 다음과 같이 정의됩니다.
$ F_ {s, 1} (k) = \ frac {1} {s} $
위의 내용은 $ s $가있는 주사위 하나만 가지고 있다면 1과 s 사이의 총 $ k $를 얻을 확률이 $ \ frac {1} {s} $입니다.
두 개의 주사위를 굴릴 때의 상황을 고려하십시오. 다음과 같이 $ k $의 합계를 얻을 수 있습니다. 첫 번째 굴림은 1에서 $ k-1 $ 사이이고 두 번째 굴림은 $ k 사이입니다. -1 $ ~ $ 1 $. 따라서 다음과 같습니다.
$ F_ {s, 2} (k) = \ sum_ {i = 1} ^ {i = k-1} {F_ {s, 1} (i) F_ { s, 1} (ki)} $
이제 주사위 3 개를 굴려 보겠습니다. 첫 번째 주사위에서 1 ~ $ k-2 $를 굴리면 $ k $의 합계를 얻을 수 있습니다. 나머지 두 주사위의 합계 는 $ k-1 $에서 $ 2 $ 사이입니다. 따라서
$ F_ {s, 3} (k) = \ sum_ {i = 1} ^ {i = k-2} {F_ {s, 1} (i) F_ {s, 2 } (ki)} $
위의 논리를 계속하면 재귀 방정식을 얻게됩니다.
$ F_ {s, n} (k) = \ sum_ {i = 1} ^ {i = k-n + 1} {F_ {s, 1} (i) F_ {s, n-1} (ki)} $
자세한 내용은 Wikipedia 링크를 참조하세요.
댓글
- @Srikant 훌륭한 대답이지만 그 함수가 어떤 산술 (즉 : 재귀 적이 지 않음)으로 해결됩니까?
- @C. Ross 불행히도 저는 그렇게 생각하지 않습니다. 그러나 나는 합리적으로 작은 n과 작은 s를 다루는 한 재귀가 그렇게 어렵지 않을 것이라고 생각합니다. 룩업 테이블을 만들고 필요에 따라 반복해서 사용할 수 있습니다.
- 연결 한 위키피디아 페이지에는 단일 합계 인 단순 비 재귀 공식이 있습니다. 하나의 파생물은 whuber ‘의 답변에 있습니다.
- 위키 링크 앵커가 죽었습니다. 대체 할 것을 알고 있습니까?
답변
이것은 사실 놀랍도록 복잡한 질문입니다. 다행히 여기에 잘 설명 된 정확한 솔루션이 있습니다.
http://mathworld.wolfram.com/Dice.html
당신이 찾고있는 확률은 방정식 (10)에 의해 주어집니다 : “n 개의 s면 주사위에서 p 점 (p의 굴림)을 얻을 확률”.
귀하의 경우 : p = 관찰 된 점수 (모든 주사위의 합), n = 주사위 수, s = 6 (6면 주사위). 그러면 다음과 같은 확률 질량 함수가 제공됩니다.
$$ P (X_n = p) = \ frac {1} {s ^ n} \ sum_ {k = 0} ^ {\ lfloor (pn) / 6 \ rfloor} (-1) ^ k {n \ choose k} {p-6k-1 \ choose n-1} $$
댓글
- Felix 사이트에 오신 것을 환영합니다!
답변
특성 함수 는 무작위 변수 의 합과 차이를 포함하는 계산을 매우 쉽게 만들 수 있습니다. Mathematica 에는 분포를 특성 함수로 변환하는 내장 기능을 포함하여 통계 분포와 함께 작동하는 많은 함수가 있습니다.
좋아요 두 가지 구체적인 예를 사용하여이를 설명하기 위해 : (1) 다른 면 수가 다른 주사위 모음을 굴린 결과를 결정하려고한다고 가정합니다. 예를 들어, 6면 주사위 2 개와 8 면체 1 개 죽습니까 (예 : 2d6 + d8 )?또는 (2) 두 주사위 굴림의 차이 (예 : d6-d6 )를 찾고 싶다고 가정합니까?
이 작업을 수행하는 쉬운 방법은 특성 기능을 사용하는 것입니다. 기본 이산 균일 분포의. 임의 변수 $ X $에 확률 질량 함수 $ f $가있는 경우 특성 함수 $ \ varphi_X (t) $는 이산 푸리에 변환 , 즉, $ \ varphi_X (t) = \ mathcal {F} \ {f \} (t) = E [e ^ {it X }] $. 정리는 다음과 같이 말합니다.
독립 랜덤 변수 $ X $ 및 $ Y $에 상응하는 확률 질량 함수 $ f $ 및 $ g $가 있으면 합계 $의 pmf $ h $ 이 RV의 X + Y $는 pmfs $ h (n) = (f \ ast g) (n) = \ sum_ {m =의 컨볼 루션 입니다. -\ infty} ^ \ infty f (m) g (nm) $.
푸리에 변환의 컨볼 루션 속성을 사용하여 특성 함수 측면에서이를 더 간단하게 다시 설명 할 수 있습니다.
p>
독립 랜덤 변수 $ X $와 $ Y $의 합의 특성 함수 $ \ varphi_ {X + Y} (t) $는 특성 함수 $ \ varphi_ {X}의 곱과 같습니다. (t) \ varphi_ {Y} (t) $.
이 Mathematica 함수는 s면 주사위의 특성 함수를 만듭니다.
MakeCf[s_] := Module[{Cf}, Cf := CharacteristicFunction[DiscreteUniformDistribution[{1, s}], t]; Cf]
푸리에 변환은 역변환이 가능하기 때문에 분포의 pmf는 특성 함수에서 복구 할 수 있습니다. 다음은이를 수행하는 Mathematica 코드입니다.
RecoverPmf[Cf_] := Module[{F}, F[y_] := SeriesCoefficient[Cf /. t -> -I*Log[x], {x, 0, y}]; F]
이 예제를 계속 진행하면서 F를 2d6 + d8의 결과 인 pmf라고합니다.
F := RecoverPmf[MakeCf[6]^2 MakeCf[8]]
$ 6 ^ 2 \ cdot 8 = 288 $ 결과가 있습니다. F 지원 도메인은 $ S = \ {3, \ ldots, 20 \} $입니다. 3 개는 주사위 3 개를 굴리기 때문에 최소값입니다. 20 달러는 $ 20 = 2 \ cdot 6 + 8 $이기 때문에 최대 값입니다. F의 이미지를 보려면 다음을 계산하세요.
In:= F /@ Range[3, 20] Out= {1/288, 1/96, 1/48, 5/144, 5/96, 7/96, 13/144, 5/48, 1/9, 1/9, \ 5/48, 13/144, 7/96, 5/96, 5/144, 1/48, 1/96, 1/288}
10이되는 결과의 수를 알고 싶다면
In:= 6^2 8 F[10] Out= 30
$ X $ 및 $ Y $에는 상응하는 확률 질량 함수 $ f $ 및 $ g $가 있으며, 이러한 RV의 차이 $ X-Y $의 pmf $ h $는 교차 상관 $ h (n) = (f \ star g) (n) = \ sum_ {m =-\ infty} ^ \ infty f (m) g (n + m) $ .
푸리에 변환의 상호 상관 속성을 사용하여 특성 함수 측면에서 더 간단하게 다시 설명 할 수 있습니다.
특성 함수 $ \ varphi_ 두 독립 랜덤 변수의 차이에 대한 {XY} (t) $ $ {X, Y} $는 특성 함수 $ \ varphi_ {X} (t) $ 및 $ \ varphi_ {Y} (-t)의 곱과 같습니다. $ (NB 두 번째 차에서 변수 t 앞의 음수 부호 실제 함수).
그러므로 Mathematica를 사용하여 d6-d6의 pmf G를 찾습니다.
G := RecoverPmf[MakeCf[6] (MakeCf[6] /. t -> -t)]
$ 6 ^ 2 = 36 $ 결과가 있습니다. G의 지원 도메인은 $ S = \ {-5, \ ldots, 5 \} $입니다. -5는 $ -5 = 1-6 $이므로 최소값입니다. 그리고 $ 6-1 = 5 $이므로 5는 최대 값입니다. G 이미지를 보려면
In:= G /@ Range[-5, 5] Out= {1/36, 1/18, 1/12, 1/9, 5/36, 1/6, 5/36, 1/9, 1/12, 1/18, 1/36}
댓글
- 물론 유한 지원 분포 (여기에서 문제가되는 것과 같은)를 포함하는 이산 분포, cf는 x = exp (it)에서 평가되는 확률 생성 함수일 뿐이므로 동일한 정보를 인코딩하는 더 복잡한 방법입니다.
- @whuber : 말씀하신 것처럼 cf, mgf 및 pgf는 거의 동일하고 서로 쉽게 변환 할 수 있지만 Mathematica에는 알고있는 모든 확률 분포와 함께 작동하는 cf 내장 기능이 있습니다. ‘ pgf가 내장되어 있지 않습니다. 이것은 위에서 설명한 것처럼 주사위 표현의 복잡성에 관계없이 cfs를 사용하여 주사위의 합 (및 차이) 작업을위한 Mathematica 코드를 특히 우아하게 만듭니다. 또한 ‘ cfs, FT, 컨볼 루션 및 교차 상관이 이와 같은 문제를 해결하는 데 어떻게 도움이 될 수 있는지 아는 것이 나쁘지 않습니다.
- @Elisha : 좋은 점 , 그들 모두. 제가 가장 궁금한 것은 Mathematica 코드의 10 줄 정도가 실제로 ” 우아한 ” 또는 이전에 제안한 단일 라인 (또는 Wolfram Alpha에 공급 된 더 짧은 라인 인 Srikant). 특성 함수를 사용한 내부 조작이 다항식을 곱하는 데 필요한 단순한 회선보다 더 힘들다고 생각합니다. Glen_b ‘의 답변에서 알 수 있듯이 후자는 대부분의 다른 소프트웨어 환경에서 구현하기가 더 쉽습니다. 접근 방식의 장점은 더 큰 일반성입니다.
답변
다음은 확률을 계산하는 또 다른 방법입니다. 컨볼 루션을 사용하여 손으로 두 주사위의 합을 분배합니다.
예제를 매우 간단하게 유지하기 위해 임의 변수를 X라고 부르는 3면 다이 (d3)와 양면 다이 (d2)의 합에 대한 확률 분포를 계산합니다. ) 그 임의의 변수를 Y라고합니다.
당신은 테이블을 만들 것입니다. 맨 위 행에 X의 확률 분포 (공정한 d3를 굴린 결과)를 작성하십시오. 왼쪽 열 아래로 , Y의 확률 분포 (공정한 d2를 롤링 한 결과)를 작성합니다.
당신은 외부 제품 을 구성 할 것입니다. 확률의 왼쪽 열이있는 확률의 맨 위 행. 예를 들어, 오른쪽 아래 셀은 첨부 된 그림과 같이 Pr [X = 3] = 1 / 3 x Pr [Y = 2] = 1 / 2의 곱이됩니다. 간단한 예에서 모든 셀은 1/6과 같습니다.
다음으로, 아래 다이어그램에 표시된 것처럼 외부 곱 행렬의 사선을 따라 합산합니다. 각 사선은 통과합니다. 같은 색으로 칠한 하나 이상의 셀 : 맨 위 줄은 파란색 셀 하나를 통과하고 다음 줄은 빨간색 셀 두 개를 통과합니다.
사각 선을 따른 각 합계는 결과 분포의 확률을 나타냅니다. 예를 들어, 적혈구의 합은 두 주사위의 합이 3이 될 확률과 같습니다. 이러한 확률은 첨부 된 다이어그램의 오른쪽 아래에 표시됩니다.
이 기술은 두 개의 이산 분포에 사용할 수 있습니다. 유한 한 지원으로. 그리고 반복적으로 적용 할 수 있습니다. 예를 들어, 3 개의 6면 주사위 (3d6)의 분포를 알고 싶다면 먼저 2d6 = d6 + d6을 계산할 수 있습니다. 그런 다음 3d6 = d6 + 2d6.
J 라는 무료 (비공개 라이선스) 프로그래밍 언어가 있습니다. APL에 뿌리를두고있는 배열 기반 언어입니다. 외부 곱을 수행하고 행렬의 경사를 따라 합계를 수행하는 연산자가 내장되어 있으므로 제가 설명한 기술을 구현하기가 매우 간단합니다.
다음 J 코드에서는 두 개의 동사를 정의합니다. 먼저 동사 d
는 s면 다이의 pmf를 나타내는 배열을 구성합니다. 예를 들어, d 6
는 6면 다이의 pmf입니다. 둘째, 동사 conv
는 두 배열의 외적과 사선을 따라 합계를 찾습니다. 따라서 conv~ d 6
는 2d6의 pmf를 출력합니다.
d=:$% conv=:+//.@(*/) |:(2+i.11),:conv~d 6 2 0.0277778 3 0.0555556 4 0.0833333 5 0.111111 6 0.138889 7 0.166667 8 0.138889 9 0.111111 10 0.0833333 11 0.0555556 12 0.0277778
보시다시피 J는 알 수 없지만 간결합니다. .
답변
사용자 이름이 마음에 드세요! 잘하셨습니다. 🙂
당신이 계산해야 할 결과는 주사위 굴림입니다. 모두 $ 6 \ times 6 = 36 $입니다.
예 : $ \ frac {1} {36} $의 경우 합계가 $ 2 $이고 $ \ frac {2} {36} $의 경우 합계가 $ 3 $이고 $ \ frac {4} {36} $입니다. 합계는 $ 4 $ 등입니다.
댓글
- 나는 ‘ 이. 더 이상 존재하지 않는 die_hard라는 사람의 최근 초보자 질문에 답변 한 후이 고대 스레드에 내 답변이 첨부되어 있음을 찾았습니다.
- stats.stackexchange.com/questions/173434/… 가이 중복에 대한 답변과 병합되었습니다.
답변
재귀 공식으로이 문제를 해결할 수 있습니다. 이 경우 $ n $ 주사위를 굴릴 확률은 $ n-1 $ 주사위를 굴림으로써 계산됩니다.
$$ a_n (l) = \ sum_ {l-6 \ leq k \ leq l-1 \\ \ text {and} n-1 \ leq k \ leq 6 (n-1)} a_ {n-1} (k) $$
k in 합계는 앞의 6 개 숫자입니다. 예를 들어 3 개의 주사위로 13을 굴리고 싶다면 처음 두 개의 주사위가 7과 12 사이에 굴리면 이것을 할 수 있습니다.
합산에서 k에 대한 두 번째 한계는 당신이 굴릴 수있는 것의 한계입니다. n-1 주사위
결과 :
1 1 1 1 1 1 1 2 3 4 5 6 5 4 3 2 1 1 3 6 10 15 21 25 27 27 25 21 15 10 6 3 1 1 4 10 20 35 56 80 104 125 140 146 140 125 104 80 56 35 20 10 4 1 1 5 15 35 70 126 205 305 420 540 651 735 780 780 735 651 540 420 305 205 126 70 35 15 5 1
수정 : 위 답변은 C.Ross가 질문에 병합 한 다른 질문 의 답변입니다
아래 코드는 R에서 해당 답변 (주사위 5 개를 요구하는 질문)에 대한 계산이 어떻게 수행되었는지 보여줍니다. 이는 Glen B의 답변에서 Excel에서 수행 한 합계와 유사합니다.
# recursive formula nextdice <- function(n,a,l) { x = 0 for (i in 1:6) { if ((l-i >= n-1) & (l-i<=6*(n-1))) { x = x+a[l-i-(n-2)] } } return(x) } # generating combinations for rolling with up to 5 dices a_1 <- rep(1,6) a_2 <- sapply(2:12,FUN = function(x) {nextdice(2,a_1,x)}) a_3 <- sapply(3:18,FUN = function(x) {nextdice(3,a_2,x)}) a_4 <- sapply(4:24,FUN = function(x) {nextdice(4,a_3,x)}) a_5 <- sapply(5:30,FUN = function(x) {nextdice(5,a_4,x)})
댓글
- @ user67275 귀하의 질문이이 질문에 병합되었습니다. 하지만 당신의 아이디어가 당신의 공식 뒤에 있었는지 궁금합니다. ” 나는 공식을 사용했습니다 : 8을 얻는 방법 없음 : 5_H_2 = 6_C_2 = 15 ” ?
답변
한 가지 접근 방식은 $ X_n = k $ 확률이 $ x의 계수라고 말하는 것입니다. ^ {k} $ 생성 함수 확장에서 $$ \ left (\ frac {x ^ 6 + x ^ 5 + x ^ 4 + x ^ 3 + x ^ 2 + x ^ 1} {6} \ right) ^ n = \ left (\ frac {x (1-x ^ 6)} {6 (1-x)} \ right) ^ n $$
그래서 예를 들어 주사위가 6 개이고 목표가 $ k = 22 $ 인 경우 $ P (X_6 = 22) = \ frac {10} {6 ^ 6} $를 찾을 수 있습니다. 해당 링크 (math.stackexchange 질문에 대한)는 다른 접근 방식도 제공합니다.
답글 남기기