プログラミング入門I 宿題 2024.05.29

Back


細菌などの微生物を滅菌する際に,どのくらいの時間滅菌すればよいかを決めるものに D 値というものがあり,これはある条件で滅菌する際に,細菌などの量が 1/10 になる時間です.また,滅菌の完了は微生物の存在確率が 10-6 になることとなっています.これは100万個のシャーレがあるとすると,それらの中に微生物がどれか1つに存在する程度の確率ということになっています.

D 値の参考図

乱数により1から12000の範囲の整数を発生させ,それを初期の細菌数とします.D 値を 3-5 の範囲の整数を乱数により作り単位を分とするとき,滅菌完了にかかる時間を答えるプログラムを再帰を用いて作成しましょう.

Student number: s236099

Initial amount of bacteria: 7174
D value: 5 min
Time to sterilize: 50 min

------------------------

解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

    # #############################
    #
    # プログラミング入門II 宿題 2024.5.29
    # 学生番号:  s236099
    # 氏名:     松江 花子
    #
    # #############################
    
    import random
    
    print('Student number: s236099')
    print('')
    
    bact = random.randint(1, 12000)
    d = random.randint(3, 5)
    print(f'Initial amount of bacteria: {bact}')
    print(f'D value: {d} min')
    
    def ster(n):
        if n == 0:
            return bact
        else:
            return ster(n - 1) / 10
    
    n = 0
    while True:
        if ster(n) < 1e-6:
            break;
    
        n += 1
    
    print(f'Time to sterilize: {d * n} min')
    
    print('\n------------------------\n')


Back