前回の演習問題をまずはモジュール化してみましょう.
前問でモジュール化を行いましたが,関数を使用する際の名前がモジュール名.関数名になって面倒ですので,from を使って簡略化しましょう.
5月8日の演習問題の i. の反復処理の部分をモジュール化したプログラムを作りましょう.
from make_score import * from initialize import * from calc_total import * from print_list import * from sort_score import * score = make_score() score = initialize(score) score = calc_total(score) print_list(score) sort_score(score) print_list(score) |
No. Eng Math Phys Total 1 98 51 75 224 2 95 94 2 191 3 7 99 99 205 4 27 20 70 117 5 74 99 62 235 6 85 91 34 210 7 90 21 25 136 8 12 75 13 100 9 41 72 91 204 10 52 21 55 128 No. Eng Math Phys Total 5 74 99 62 235 1 98 51 75 224 6 85 91 34 210 3 7 99 99 205 9 41 72 91 204 2 95 94 2 191 7 90 21 25 136 10 52 21 55 128 4 27 20 70 117 |
乱数により10から20の整数と5から8の範囲の整数を1つずつ発生させ,それぞれ m と n とするとき,順列 mPn を求めるプログラムを作成しましょう.
Number of permutaion 17P5: 742560 |
5P3 = 5 x 4 x 3 でしたね.なお,自分の計算があっているかどうかは math.perm(m, n) で確認できます.
24個の要素の中から任意の個数の組み合わせを選ぶ場合の数を以下のように計算して求めるプログラムを作成しましょう.
Number of combination of 24Cn for n from 0 to 24 0 1 1 24 2 276 3 2024 4 10626 5 42504 6 134596 7 346104 8 735471 9 1307504 10 1961256 11 2496144 12 2704156 13 2496144 14 1961256 15 1307504 16 735471 17 346104 18 134596 19 42504 20 10626 21 2024 22 276 23 24 24 1 Total case: 16777216 |
組み合わせの公式はどうでしたでしょうか?こちらも答え合わせは math.comb(m, n) でできます.