iT邦幫忙

0

關於細菌分裂的程式碼發問

  • 分享至 

  • xImage

檢測大腸桿菌數量(30分鐘分裂一次),大於等於6MPN(600個)/100mL時需要換水,若小於600則通知幾分鐘後需要換水。
我已經有打一部份程式碼,程式可以正常運作但是出來的答案都不對!希望大家可以幫幫忙~分常感謝!https://ithelp.ithome.com.tw/upload/images/20230320/20158894hNRL46TKwE.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
淺水員
iT邦大師 6 級 ‧ 2023-03-20 16:28:29

https://ithelp.ithome.com.tw/upload/images/20230320/20112943SkSegenSmo.png

程式碼因為你用圖片我就懶得改了
(貼程式碼可參考:https://ithelp.ithome.com.tw/markdown#mk_fenced )

chiyi iT邦新手 5 級 ‧ 2023-03-20 16:38:46 檢舉

請問是這樣嗎,謝謝您的幫助,希望可以再次幫忙解答!

import math
t=30
T=0
x= float(input('輸入大腸桿菌初始數量:'))
if x >= 600:
    print('Need to change the water now.')
elif x < 600:   
    while x < 600:
        x=x * math.pow(2,(T/t))
        print('T=',T)
        print('x=',x)
        T=T+1
        print()
        
    else:
        print('after ',T-1,' minutes needs to change the water.')```
淺水員 iT邦大師 6 級 ‧ 2023-03-20 18:48:16 檢舉

跟我想的不同,不過我人在外面,要晚點了

淺水員 iT邦大師 6 級 ‧ 2023-03-20 23:23:52 檢舉

如果只照你原本程式碼去修改
應該是 x 值那邊

import math
t = 30
T = 0
x = float(input('輸入大腸桿菌初始數量:'))
if x >= 600:
    print('Need to change the water now.')
elif x < 600:
    while x * math.pow(2, (T/t)) < 600:
        T = T+1
    else:
        print('after ', T-1, ' minutes needs to change the water.')

至於我的想法是直接用對數去計算

import math
t = 30
x = float(input('輸入大腸桿菌初始數量:'))
if x >= 600:
    print('Need to change the water now.')
elif x < 600:
    T = math.floor(30 * math.log(600 / x, 2))
    print('after ', T, ' minutes needs to change the water.')

我要發表回答

立即登入回答