我有这段代码:
class random_walk:
#ns: number of steps1d
#np: number of particles
#dimension : choose between 1D or 2D
def __init__(self,ns,np,dimension=None):
self.ns=ns
self.np=np
self.dimension=dimension
def steps1d(self,ns):
return 2*sc.random.random_integers(0,1,size=self.ns)-1
# The position of particles after the n-th steps1d is given from the sum of n first steps1d
def Walk1d(self,ns):
return sc.cumsum(random_walk.steps1d(self,self.ns)
.....
当我这样做时:
ns=10000
np=100
dimension=2
rw1=random_walk(ns,np) # for 1d
rw1为random_walks类创建一个实例,其中ns = 10000。
现在,如果我想这样做:
print('walk1d(10)=',rw1.Walk1d(10))
它会给我10000个大小的数组(因为如果我告诉这个权利,它在10000 ns之前创建了一个实例)。 那么,如果我想应用上面的语句来给我10个大小的数组存在什么解决方案呢?
答案 0 :(得分:1)
def steps1d(self, ns):
return 2*sc.random.random_integers(0, 1, size=ns)-1
def Walk1d(self, ns=None):
if ns is None:
ns = self.ns
return sc.cumsum(self.steps1d(ns))