順列と組み合わせについて考えてみましょう.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')
|