qc:隨機線路生成trick

目的
在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個數據點。
  • 實驗時,可極大減少上位機的波形生成計算量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章