Значение строки slow_cost = slow_len * Fast_cost = fast_len * R в моей функции ave_chop_time. Где я go ошибся?
Он работает нормально, и я предполагаю, что моя функция ave_chop_time не имеет значения. Кроме того, раньше не говорилось, что L не определено, а теперь это так.
import random
slice_list= [0,100]
size_limit= L
#L is defined by user input as seen below
def get_piece_sizes(slice_list):
piece_sizes=[]
for i in range(len(slice_list)-1):
piece_sizes.append(slice_list[i+1]-slice_list[i])
return piece_sizes
def fast_slices(size_limit, slice_list):
done= False
while (not done):
cut= round(random.uniform(0,100),5)
slice_list.append(cut)
slice_list.sort()
p**strong text**iece_sizes=get_piece_sizes(slice_list)
if max(piece_sizes)<=size_limit:
return slice_list
def slow_slices(size_limit, slice_list):
i=0
for i in range(len(slice_list)):
slow_slice_diff= [slice_list[-1] - slice_list[-2]]
# checking if the slice_list is smaller than the size_limit
#from subrtacting from the second to last element
if max(slow_slice_diff) == size_limit:
return slice_list
elif max(slow_slice_diff) > size_limit:
x=slice_list[-2] + size_limit
slice_list. append(x)
slice_list.sort()
return slow_slices(size_limit, slice_list)
def ave_chop_time(slice_list,fast_limit,slow_limit,fast_cost, slow_cost,n):
total_cost=0
for i in range(n):
fast_sliced= fast_slices(fast_limit, slice_list)
slow_sliced= slow_slices(slow_limit, slice_list)
fast_len=len(fast_sliced)
slow_len=len(slow_sliced)
slow_cost= slow_len * A
fast_cost = fast_len * R
total_cost= slow_cost + fast_cost
return total_cost/n
if __name__ == "__main__":
print("Welcome to my average chop time calculator!")
L = float(input("Give the overall size limit: "))
R = float(input("Give the time cost for a random slice: "))
A = float(input("Give the time cost for an accurate slice: "))
print("The average chopping times by random slice size limit: ")
print("{:18} {:18}".format("fast_limit", "ave_chop_time"))
for i in range(0, int(101 - L), 5):
print("{:<18f} {:<18f}".format(L+i, ave_chop_time([0,100], L+i, L, R, A, 100)))