我正在创建一个供私人使用的潜水表,我遇到了计算EAD的错误
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)
在这种情况下混合氧气的百分比,所以当减去100时,它应该给出该公式的氮气分数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)
答案 0 :(得分:1)
在您提供的链接上, 可以如下计算等效空气深度(英尺):
EAD =(深度+ 33)×N2的分数/0.79-33
申请你的号码,
depth = 90
mix = 36
nitrogen = float(100 - mix) /100 #Fraction of N2
EAD = (depth + 33) * nitrogen / 0.79 - 33
print EAD
会在feets中给出正确的结果。
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
66.6455696203
>>>
答案 1 :(得分:0)
您应该使用N2的分数(%),请尝试以下代码。
def calculate_ead(self):
nitrogen = (100 - self.mix)/100
EAD = (self.depth + 10) * nitrogen / 0.79 - 10
self.depth = int(EAD)