在代码中,采样是通过以下方式完成的:
samples = self.center + np.random.uniform(-self.radius, self.radius, (num_samples, len(self.center)))
这里,np.random.uniform
函数在每个维度独立地生成了一个介于-self.radius
和self.radius
之间的随机数。这意味着每个维度都是独立采样的,每个维度的采样范围都是一个长度为2 * self.radius
的线段。当你结合所有维度的采样结果时,形成的是一个边长为2 * self.radius
的超立方体(在三维空间中就是一个立方体)。
为什么?
如果你在一维空间中不断进行均匀采样,你得到的是一个线段。
在二维空间中,你得到的是一个正方形区域的采样。
在三维空间中,你得到的是一个立方体内的采样。
以此类推,在更高维空间中,采样形成的是一个超立方体。