我有這樣的代碼:雖然真正的算法迭代的Python
split_at = q[:,3].searchsorted([1,random.randrange(LB,UB-I)])
D = numpy.split(q, split_at)
T=D[1]
TF=D[2]
T2=copy(TF)
T2[:,3]=T2[:,3]+I
u=random.sample(T[:],1)
v=random.sample(T2[:],1)
u=array(u)
v=array(v)
d=v[0,0]-u[0,0]+T[-1,3]
我想這if
d < = 1000:
x=numpy.where(v==T2)[0][0]
y=numpy.where(u==T)[0][0]
l=np.copy(T[y])
T[y],T2[x]=T2[x],T[y]
T2[x],l=l,T2[x]
E=np.copy(T)
E2=np.copy(T2)
E[:,3]=np.cumsum(E[:,0])
E2[:,3]=np.cumsum(E2[:,0])+I
f2=sum(E[:,1]*E[:,3])+sum(E2[:,1]*E2[:,3])
,比if d>1000
我想OT重新計算代碼的第一部分,一遍又一遍地驗證if d<=1000
,直到滿足條件。
我不知道如果我可以,因爲d必須是我在其他段落中使用的固定值@sharcashmo – Charlienoob
@Charlienoob但你'在代碼中設置d值 – sharcashmo
我不明白爲什麼d = 1000000,然後d = v [0,0] -u [0,0] + T [-1,3] – Charlienoob