順列と組み合わせについて考えてみましょう.7から10の範囲の整数と3から5の範囲の整数をそれぞれ1つずつ乱数で発生させて,m と n とします.このとき順列と組み合わせ mPn と mCn を計算するプログラムを作成しましょう.
一応順列と組み合わせの計算式を以下に載せておきます.
Student number: s246099 10P3 = 720 10C3 = 120 ------------------------ |
前回の演習問題で取り組んだ階乗計算がそのまま使えます.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
解答例
# ############################# # # プログラミング入門I 宿題 2024.12.2 # 学生番号: s236099 # 氏名: 松江 花子 # # ############################# import random print('Student number: s246099') print('') m = random.randint(7, 10) n = random.randint(3, 5) #m, n = 10, 3 fact_m = 1 fact_n = 1 fact_mn = 1 for i in range(1, m + 1): fact_m *= i for i in range(1, n + 1): fact_n *= i for i in range(1, m - n + 1): fact_mn *= i perm = fact_m // fact_mn comb = perm // fact_n print(f'{m}P{n} = {perm}') print(f'{m}C{n} = {comb}') print('\n------------------------\n') |