回答編集履歴
5
誤字訂正
answer
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|

|
70
70
|
|
71
|
-
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、1 年は n = 365 日と考えると、これがカードの
|
71
|
+
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、1 年は n = 365 日と考えると、これがカードの種類に相当し、社員 i 人というのはカードを i 枚購入した場合に相当するので、ちょうど p = 100 日開かれる可能性は f(365, i, 100) です。
|
72
72
|
|
73
73
|
で、100 日以上になる確率は、ちょうど 100 日の確率と、ちょうど 101 日の確率と、(中略) ちょうど i 日の確率をすべて足し合わせたものになるので、次のコードで描画できます。
|
74
74
|
|
4
コード修正
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|

|
6
6
|
は Python で書くとこうですね。
|
7
7
|
|
8
|
-
```
|
8
|
+
```python
|
9
9
|
1 / pow(n, i)
|
10
10
|
```
|
11
11
|
|
@@ -13,7 +13,7 @@
|
|
13
13
|

|
14
14
|
は [順列組み合わせ](https://note.nkmk.me/python-math-factorial-permutations-combinations/) の記号で、Python では次の関数で表せます。
|
15
15
|
|
16
|
-
```
|
16
|
+
```python
|
17
17
|
def comb(n, p):
|
18
18
|
return math.factorial(n) // (math.factorial(p) * math.factorial(n - p))
|
19
19
|
```
|
@@ -24,7 +24,7 @@
|
|
24
24
|

|
25
25
|
は h(0) + h(1) + ... + h(p) なので、Python ではこんなふうに書けます。
|
26
26
|
|
27
|
-
```
|
27
|
+
```python
|
28
28
|
sum = 0
|
29
29
|
for j in range(p + 1):
|
30
30
|
sum += h(j)
|
@@ -34,7 +34,7 @@
|
|
34
34
|

|
35
35
|
はこうですね。
|
36
36
|
|
37
|
-
```
|
37
|
+
```python
|
38
38
|
pow(-1, p - j) * comb(p, j) * pow(j, i)
|
39
39
|
```
|
40
40
|
|
@@ -43,7 +43,7 @@
|
|
43
43
|
以上をまとめると、最初の式は次の関数 f で表すことができます。
|
44
44
|
(なお、引数 n はカードの種類、i は購入した枚数、p は何種類揃うかを意味します。)
|
45
45
|
|
46
|
-
```
|
46
|
+
```python
|
47
47
|
import math
|
48
48
|
|
49
49
|
def comb(n, p):
|
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
これを使って、5 種類のカードを i 枚購入して全種類をコンプリートする確率のグラフを描画してみます。
|
60
60
|
|
61
|
-
```
|
61
|
+
```python
|
62
62
|
import matplotlib.pyplot as plt
|
63
63
|
|
64
64
|
x = range(0, 31)
|
@@ -70,9 +70,9 @@
|
|
70
70
|
|
71
71
|
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、1 年は n = 365 日と考えると、これがカードの枚数に相当し、社員 i 人というのはカードを i 枚購入した場合に相当するので、ちょうど p = 100 日開かれる可能性は f(365, i, 100) です。
|
72
72
|
|
73
|
-
で、100 日以上になる確率は、ちょうど 100 日の確率と、ちょうど 101 日の確率と、(中略) ちょうど i 日の確率をすべて足し合わせたものになるので、次の
|
73
|
+
で、100 日以上になる確率は、ちょうど 100 日の確率と、ちょうど 101 日の確率と、(中略) ちょうど i 日の確率をすべて足し合わせたものになるので、次のコードで描画できます。
|
74
74
|
|
75
|
-
```
|
75
|
+
```python
|
76
76
|
def g(n, i, p):
|
77
77
|
sum = 0
|
78
78
|
for j in range(p, min(i, n) + 1):
|
3
誤字訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
次の式は 3 つの部分に分け
|
1
|
+
次の式は 3 つの部分に分けて掛け合わせたものになります。
|
2
2
|

|
3
3
|
|
4
4
|
まず、
|
@@ -11,10 +11,11 @@
|
|
11
11
|
|
12
12
|
次に、
|
13
13
|

|
14
|
-
は [順列組み合わせ](https://note.nkmk.me/python-math-factorial-permutations-combinations/) の記号で、Python で
|
14
|
+
は [順列組み合わせ](https://note.nkmk.me/python-math-factorial-permutations-combinations/) の記号で、Python では次の関数で表せます。
|
15
15
|
|
16
16
|
```py
|
17
|
+
def comb(n, p):
|
17
|
-
math.factorial(n) // (math.factorial(p) * math.factorial(n - p))
|
18
|
+
return math.factorial(n) // (math.factorial(p) * math.factorial(n - p))
|
18
19
|
```
|
19
20
|
|
20
21
|
最後に、
|
@@ -67,7 +68,7 @@
|
|
67
68
|
|
68
69
|

|
69
70
|
|
70
|
-
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、
|
71
|
+
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、1 年は n = 365 日と考えると、これがカードの枚数に相当し、社員 i 人というのはカードを i 枚購入した場合に相当するので、ちょうど p = 100 日開かれる可能性は f(365, i, 100) です。
|
71
72
|
|
72
73
|
で、100 日以上になる確率は、ちょうど 100 日の確率と、ちょうど 101 日の確率と、(中略) ちょうど i 日の確率をすべて足し合わせたものになるので、次のプログラムで描画できます。
|
73
74
|
|
2
誤字訂正
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
はこうですね。
|
35
35
|
|
36
36
|
```py
|
37
|
-
pow(-1,
|
37
|
+
pow(-1, p - j) * comb(p, j) * pow(j, i)
|
38
38
|
```
|
39
39
|
|
40
40
|
---
|
1
最後の説明を修正
answer
CHANGED
@@ -67,8 +67,10 @@
|
|
67
67
|
|
68
68
|

|
69
69
|
|
70
|
-
また、社員が
|
70
|
+
また、社員が i 人いる場合に年間 100 日以上パーティーが開かれる確率ですが、一年は n = 365 日と考えると、これがカードの枚数に相当し、社員 i 人というのはカードを i 枚購入した場合に相当するので、ちょうど p = 100 日開かれる可能性は f(365, i, 100) です。
|
71
71
|
|
72
|
+
で、100 日以上になる確率は、ちょうど 100 日の確率と、ちょうど 101 日の確率と、(中略) ちょうど i 日の確率をすべて足し合わせたものになるので、次のプログラムで描画できます。
|
73
|
+
|
72
74
|
```py
|
73
75
|
def g(n, i, p):
|
74
76
|
sum = 0
|