Scratch用的是哪个RNG?
Which RNG is used in Scratch?
Scratch 1.4使用了哪个随机数生成器,我在哪里可以找到它的源代码实现?如果它只是 libc 的 random()
,请指出它被调用的地方。
Scratch 1.x 是用 Squeak Smalltalk 编写的。您可以通过关注 these instructions.
从 Scratch 中获取源代码
pick random () to ()
块在 Scratch-Objects -> ScriptableScratchMorph (instance) -> other ops -> randomFrom:to:
中定义。基本的必备代码有
t5 _ RandomGen next * (t4 - t3) + t3.
现在,RandomGen
是什么?事实证明,它在 Scratch 中(在 class 初始化中)被定义为只是 Squeak 的 Random
.
的副本
The random-number-generator is a Park-Miller generator, it is implemented in the class Random.
Scratch 还要求在某些 list blocks 中使用随机数,您可以在其中对 "any" 列表项进行操作。这是在 list ops -> lineNum:forList:
.
中实现的
Scratch 1.4使用了哪个随机数生成器,我在哪里可以找到它的源代码实现?如果它只是 libc 的 random()
,请指出它被调用的地方。
Scratch 1.x 是用 Squeak Smalltalk 编写的。您可以通过关注 these instructions.
从 Scratch 中获取源代码pick random () to ()
块在 Scratch-Objects -> ScriptableScratchMorph (instance) -> other ops -> randomFrom:to:
中定义。基本的必备代码有
t5 _ RandomGen next * (t4 - t3) + t3.
现在,RandomGen
是什么?事实证明,它在 Scratch 中(在 class 初始化中)被定义为只是 Squeak 的 Random
.
The random-number-generator is a Park-Miller generator, it is implemented in the class Random.
Scratch 还要求在某些 list blocks 中使用随机数,您可以在其中对 "any" 列表项进行操作。这是在 list ops -> lineNum:forList:
.