2

我最近意识到numpy上的随机函数在 a 中使用时总是给出相同的值Scene,如下例所示:

from manimlib.imports import *

def r():
    return np.random.rand(5)

class MyScene(Scene):
    def construct(self):
        print(r())        

将一遍又一遍地给出相同的值:

manim foo.py MyScene -p
...
[0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]
4

1 回答 1

2

查看manim/manimlib/scene/scene.py显示有一个random_seed默认为 0的配置参数。Scene创建 a 时,它调用random.random.seed将随机生成器的状态设置为此值。

要再次获得随机数,请将其设置None为:

def r():
    return np.random.rand(5)

class MyScene(Scene):
    CONFIG = dict(random_seed=None)
    def construct(self):
        print(r())
于 2020-05-28T09:34:13.610 回答