绘制随机数遍历列表

时间:2020-10-06 13:25:42

标签: python list

假设我有一个列表

[1,2,4]

我定义了最大值z_max = 4dz = 0.5,因此定义了k = z_max/dz = 8。下方显示间隔的图

enter image description here

所以基本上我的伪代码是这样的:

  1. 在第一个间隔(0,1)中绘制一个随机数r1

  2. 在第二个间隔(1,2)中绘制一个新的随机数r2

  3. 在第三个间隔(2,4)中绘制一个新的随机数r3

  4. 使用k个元素[r1,r1,r2,r2,r3,r3,r3,r3]

    创建一个列表

我认为您必须首先计算列表中的间隔

list1 = [1,2,4]
list1_diff = np.diff(list1)
#Append first interval missed
print(np.insert(list1_diff,0,1))
[1,1,2]

因此,此列表是列表中的间隔长度。现在,我需要用dz除以列表中的每个元素,以找出应该绘制并重复一个随机数的次数(k次)。如何使用python列表生成

[r1,r1,r2,r2,r3,r3,r3,r3]

r1r2r3N(0,1)随机数吗?我想指出正确的方向...我很困。

1 个答案:

答案 0 :(得分:0)

这就是我对您的问题的理解:

  • list1中将为您提供一个不小于1的整数列表
  • 您掌握有关步长dz
  • 的信息
  • 我假设list1所表示的dz中相邻整数之间的差返回而整数size_diff则是
  • size_diff是您希望看到从result_list的正态分布中抽取的一个随机数的次数
import numpy as np

dz = .5
list1 = [1, 2, 4]
result_list = []

# insert 0 for first interval
list1.insert(0, 0)

for i in range(len(list1)-1):
    start = list1[i]
    end = list1[i+1]
    diff = end - start
    size_diff = int(diff / dz)
    random_nr = np.random.normal(0, 1)
    result_list.extend([random_nr]*size_diff)

print(result_list)

使用风险自负,但我希望这对您有帮助!