我需要生成一个显示泊松分布的数字列表(表示时间点),然后返回列表并删除前一个数字之后出现的任何数字(60/300)。你知道吗
到目前为止,我已经生成了以下代码:
a = range(1,20000,100)
b = range(1,4500,10)
list_of_numbers=[]
for i in a:
for j in b:
i = float(random.expovariate(j)*10000)
list_of_numbers.append(i)
list_of_numbers.sort()
max_diff_between_numbers = float(60/300)
final_number_list = [(x,y) for x,y in zip(list_of_numbers[1:],list_of_numbers[:-1]) if (x-y)>max_diff_between_numbers]
目前,sing这个zip函数x-y对于每个x-y返回0.0,我似乎无法改进它。任何帮助都将不胜感激,谢谢。你知道吗
您的
max_diff_between_numbers
设置为0:你可能想要的是:
根据你问题的标题,我认为你指的是数字之间的最小差值,而不是最大值。 无论如何,如果出现以下情况,将前面的值压缩在一起可能是个问题: [(A,B),(C,D)],其中(A,B)失败,(C,D)失败,但(B,C)通过或(A,D)通过。你知道吗
因此,基本上,算法必须检查最后传递的值的差异,而不是预定的一对。我相信列表理解不能在创建时解决自己的问题,所以必须分两个阶段来完成。你知道吗
相关问题 更多 >
编程相关推荐