目的
在rb或xeb中,需要生成m*n個隨機線路,比如
m=np.linspace(10,1000,100)
n = 100
方法1
老實人方法,思路如下。最終生成50*100個隨機線路,用嵌套list表示,其中len(random_circuits )=50, len(random_circuits [i])=100
random_circuits = []
for i in range(m):
t = []
for j in range(n):
#生成一個m層的線路
cir = gen_random_cir(m[i])
t.append()
random_circuits .append(t)
方法2
trick方法,思路如下。最終生成100個隨機線路,每個隨機線路的層數爲1000。用list表示。其中len(random_circuits )=100。
random_circuits = []
for j in range(n):
cir = gen_random_cir(m[-1])
trick點在於:生成一個層數爲1000的隨機線路,可以等價看成生成了cycle=1,2,3,…1000共1000個隨機線路。隨機random=100次,即可看成生成了1000*100個隨機線路。
好處:
- 仿真時,極大減少運算量。比如方法1計算了50*100個線路,最終得到50個數據點;而方法2計算了100個線路,卻可以得到1000個數據點。
- 實驗時,可極大減少上位機的波形生成計算量。