eko 发表于 2014-6-10 10:26:42

关于random()和randomSeed()在使用上的问题

本帖最后由 eko 于 2014-6-12 14:28 编辑

写着写着好像又想通了,又好像没想通,还是要求助,顺便分享一下看法,望指正。

(1)关于 randomSeed()
randomSeed() 根据括号里面的值产生随机数种子。

①randomSeed(x)(“x”为确定值)
通过为 randomSeed() 设定一确定值来产生随机数种子,将产生一段确定的“随机数”的序列,
我估计在某些特定场合需要用到精确重复的伪随机数,但不知道具体应用。

②randomSeed(analogRead(0))
当模拟引脚("0")悬空时, analogRead(0) 读取模拟噪声。
通过每次使用 random() 前调用 randomSeed(analogRead(0)) 读取模拟噪声来产生的随机数种子,产生不同的随机数序列,让每次调用 random() 都能从不同的伪随机数序列中取数,从而产生较为理想的随机数。


(2)使用 random() 前的 randomSeed() 是必须的吗?——如果不是,那么作用和区别是什么?

①random()
在一些例程当中,我发现中间没有用 randomSeed() 来做种,而直接用 random() 来产生伪随机数,所以我猜::
在不使用 randomSeed() 的情况下 random()会以某一伪随机数序列来取随机数,但是这唯一的随机数序列不确定是哪一个,所以无法用于上面所说的某些特殊场合;

②使用 random() 前 调用 randomSeed(x)   (“x”为确定值)
如上面所说可以用于特殊场合。

现在的问题是:
还是不确定,不明白使用 random() 前调用和不调用 randomSeed(x) 有什么区别?????抓狂了

pathletboy 发表于 2014-6-10 11:18:56

不调用randomSeed或者Seed值相同的话,随机数序列是一样的,只有不同的Seed才会产生不同的随机数序列。

eko 发表于 2014-6-12 14:27:15

pathletboy 发表于 2014-6-10 11:18 static/image/common/back.gif
不调用randomSeed或者Seed值相同的话,随机数序列是一样的,只有不同的Seed才会产生不同的随机数序列。

消除心中疑惑,感谢
页: [1]
查看完整版本: 关于random()和randomSeed()在使用上的问题