鍋あり谷あり

テーマを決めずに適当に書いています。

あなたならどうお書きになります1.0 - 場合の数

三番目の実装についてのみ、解説を書こうと思ったんだが、時間がないので今日はやめ。
年明けになるかな。

それとは別に、場合の数を書いておこう。
複数人数のグループがない場合の、プレゼント交換の場合の数は以下の通りになる:

2:1 ≒ 2**0
3:2 ≒ 2**1
4:9 ≒ 2**3
5:44 ≒ 2**5
6:265 ≒ 2**8
7:1854 ≒ 2**11
8:14833 ≒ 2**14
9:133496 ≒ 2**17
10:1334961 ≒ 2**20
11:14684570 ≒ 2**24
12:176214841 ≒ 2**27
13:2290792932 ≒ 2**31
14:32071101049 ≒ 2**35
15:481066515734 ≒ 2**39
16:7697064251745 ≒ 2**43
17:130850092279664 ≒ 2**47
18:2355301661033953 ≒ 2**51
19:44750731559645106 ≒ 2**55
20:895014631192902121 ≒ 2**60
21:18795307255050944540 ≒ 2**64
22:413496759611120779881 ≒ 2**68
23:9510425471055777937262 ≒ 2**73
24:228250211305338670494289 ≒ 2**78
25:5706255282633466762357224 ≒ 2**82
26:148362637348470135821287825 ≒ 2**87
27:4005791208408693667174771274 ≒ 2**92
28:112162153835443422680893595673 ≒ 2**97
29:3252702461227859257745914274516 ≒ 2**101
30:97581073836835777732377428235481 ≒ 2**106

と思う。
見ての通り、コロンの前が人数、後が場合の数。
十進数でずらずら書いても大きさがわからないので、2の何乗になるのかも付記した。
20人の時に数え上げるのが不可能だということがよくわかる。


この計算をすること自体も面白かった。プログラミングの問題というより数学の問題だけど。


あ。
d:id:scinfaxi:20061224:1166895125 に、8人の場合に 14834通りとあるが、14833通りの間違いだと思う。7で割れるはず。