【小白求教】为什么ti.random()每次都生成相同的随机数

本人小白一名,在尝试运行 examples/simulation/ad_gravity.py时发现:

@ti.kernel
def init():
    for i in x:
        x[i] = [ti.random(), ti.random()]
        x[i] = [ti.random(), ti.random()]
        print(x[i])

我认为init会使得每次x[i],即粒子的起始位置应为随机的,但实际在本机运行,每次粒子的初始位置都是固定的。不知这是何原因。

输出初始位置如下:

你好:wave: 因为 ti.random() 生成的是伪随机数,所以你需要给他一个变化的随机种子(seed),for example:

ti.init(random_seed=int(time.time()))
2 个赞