A問題 The Number of Even Pairs
1 2 3 4 5 |
import math n,m = map(int, input().split()) ans = math.comb(n,2)+math.comb(m,2) print(ans) |
nC2+mC2を実装しようとしたら大苦戦しました。
数学的な内容になると急に難しくなる印象があります。
余談
順列や組み合わせの計算をするためのツールはitertoolsをはじめとしていくつかありますが、何を使うかによっては計算速度に差が出てくるようです。
2個目の参考記事をもとに解答を作ってみたのですが、一部エラーになるケースがありました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
n,m = map(int, input().split()) import math def Combination(n,r): return math.factorial(n)/math.factorial(r)/math.factorial(n-r) a = 0 b = 0 if n > 1: a = int(Combination(n,2)) if m > 1: b = int(Combination(m,2)) print(a+b) |
参考記事
【Python】組み合わせ(nCr) 計算の高速化 - Qiita
* 以下の項目における各手法の評価はあくまで個人的なものです。目次既存ツールを用いた手法1(評価 ☆)既存ツールを用いた手法2(評価 ☆☆)既存ツールを用いた手法3(評価 ☆☆☆)ユーザ定…
pythonで組み合わせの総数を計算 - Qiita
#はじめに組み合わせのリストはitertoolを用いるが,総数の計算を求める方法については,検索の上位に出てこず時間がかかったのでここでメモ書きする#Scipyの関数を使う(おすすめ)scip…
コメント