def formula(listA, count_zero=0, start_waiting_time = 0, result=[], service_time=random.expovariate(1.2), interarrival=1):
for i in listA:
if i == 1:
result.append(max(start_waiting_time + service_time - (count_zero + 1) * interarrival), 0)
count_zero = 0
elif i == 0:
count_zero += 1
return result
# Test case
print(formula([1, 1, 1, 0, 1, 0, 0, 1]))
#This returns result: TypeError 'float' object is not iterable
一旦我把max
从方程result.append(max(start_waiting_time + service_time - (count_zero + 1) * interarrival), 0)
中去掉,我就得到了结果,但这些结果并不是我所希望的。在
这是从等式中删除max
时的代码:
{我想告诉我的是,如果结果是负的,那么这个结果永远不会是负的。因此,我预期的结果是:
^{3}$不同的是,结果中的最后一个输出是0,而不是-0.4639967758134991。在
来自python3文档:
在代码中,您在单个浮点值上使用了max,这是一个表达式的结果:
因此,如果将tuple与表达式和0一起传递给max函数,如下所示:
^{pr2}$它应该像你所期望的那样工作。在
相关问题 更多 >
编程相关推荐