我創建供私人使用潛水錶,我快到了錯誤計算EADPython的處理配方與預期不同
def calculate_ead(self):
nitrogen = 100 - self.mix
EAD = (self.depth + 10) * nitrogen/0.79 - 10
self.depth = int(EAD)
這種計算散發出一股瘋狂的高數(上千萬)。我得到了this網站的公式和英尺欄的計算公式。當混合物高於21時的計算結果應該比深度值低。
深度和其他東西的我的初始化:
def __init__(self, d=35, t=30, m=21, p=1.6):
self.depth = int(d) # Depth
self.time = int(t) # Time
self.mix = int(m) # Mix (Oxygen integer)
self.max_po2 = float(p)
混合在這種情況下,因此當一百通過減去氧氣的百分比它應該給氮的分數爲此式EAD =(深度+ 10)×N2的分數/ 0.79 - 10
告訴我我做錯了什麼?從交互式shell 樣品測試:
depth = 90
mix = 36
nitrogen = 100 - mix
EAD = (depth + 10) * nitrogen/0.79 + 10
EAD
8111.26582278481
預期輸出:
>>>depth = 90
>>>mix = 36
>>>nitrogen = 100 - mix
>>>EAD = (depth + 10) * nitrogen/0.79 + 10
>>>EAD
67
格式的數字: self.depth爲自然數(25,30,35) self.mix是一個自然數(30,45,60)
你說「以英尺計算」部分,但你的常數來自「以米計算」。你確定'self.mix'是百分比(即20)而不是分數(即0.20)? –
你爲什麼期望67?你基本上乘以100(深度+10)與81(氮/0.79),然後加10,所以8111對我來說似乎很正確? :-) 順便說一下,在你的代碼中,你會做到 - 最後10個,但在你的例子中,你以+10結束,所以似乎甚至更混亂? –
@hughbothwell是對的,行應該是mix = 0.36;氮氣= 1 - 混合 – madtyn