重複組合わせを完全に忘れていた話

数学パズルの本を久しぶりにやっているのですが、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 件のコメント :

コメントを投稿