
数学パズルの本を久しぶりにやっているのですが、Q30でどうしてもわからなかった解答例の意味がわかりました。
問題は2口と3口のコンセントの接続方法のパターン数を算出する問題なのですが
わからなかったのはこんな感じの部分です。 (python)
1 2 3 4 5 6 | # 2口 for i in range ( 1 , int (remain / 2 ) + 1 ): if remain - i = = i: cnt + = int (set_tap(i) * (set_tap(i) + 1 ) / 2 ) else : cnt + = set_tap(remain - i) * set_tap(i) |
remain - i == iの時に足している1と/2ってなんだよ。
1日悩んでやっと意味がわかりました。
重複組合わせ
n個の物の中からr個の組み合わせを選ぶときに、重複はOKだけど順序は考慮しない場合、その組み合わせは
1 | nHr |
で表せられるそうです。
高校数学で習うようですが、完全に頭から消えていました。
PとかCは覚えていたんですが...
その数は
1 | n+r-1Cr |
で求められます。
Q30はコンセントの指し方を求める問題ですが、同じ個数の場合にコンセントの接続方法のパターンを考慮する必要があるで上記の方法で算出する必要があります。
高校数学全く忘れてました。
0 件のコメント :
コメントを投稿