2016-12-08 15 views
0

こんにちは、5C2をPythonで行う方法はありますか?私はPythonのnoobだとどこでも答えを見つけることができません。答えは10アイブで遊んしようとしてきたが、私はエラーのみを取得することができなければならない、ここで私は10itertoolsを使用したPythonでの組み合わせ

from itertools import * 
    print(combinations(5,2)) 

を取得する必要があります私のコードだそれは私を与える:

TypeError: 'int' object is not iterable 

すべてのヘルプはありますあなたはコンビの数を見つけることについて明示的に求めているので

+0

「二項係数」とscipyを試してください。 – LutzL

答えて

1
In [35]: def choose(n,k): 
    ....:  return math.factorial(n)/(math.factorial(k)*math.factorial(n-k)) 
    ....: 

In [36]: choose(5,3) 
Out[36]: 10.0 

を高く評価することは、数学

+0

しかし、電卓の5C3はあなたに10を与えません。 –

+0

多分浮動小数点除算を整数除算に変更して、OPが期待する整数値を取得する必要があります。 –

+0

ありがとうございました –

1

をインポートすることを忘れないでください。 itertools.combinations(iterator, k)はそのリストから選択すること引数として(可能リスト)イテレータと要素の数を取る:国使用してitertoolsは、解決策は

import itertools 
print len(list(itertools.combinations(range(5),2))) 

は私に説明してみましょうだろう。 k要素タプルの何組の組み合わせをそのリストから描画できるかという質問に答える代わりに、そのリストを直接返します。 したがって、すべてのkタプルを描画し、そのリストの長さを調べる要素リストをnとすると、2項係数が得られます。

もちろん、2項係数を計算する簡単な方法があります。 scipy.special.binom

import scipy 
print scipy.special.binom(5,2) 
関連する問題