极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9653|回复: 2

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

[复制链接]
发表于 2014-6-10 10:26:42 | 显示全部楼层 |阅读模式
本帖最后由 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) 有什么区别?????抓狂了
回复

使用道具 举报

发表于 2014-6-10 11:18:56 | 显示全部楼层
不调用randomSeed或者Seed值相同的话,随机数序列是一样的,只有不同的Seed才会产生不同的随机数序列。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-12 14:27:15 | 显示全部楼层
pathletboy 发表于 2014-6-10 11:18
不调用randomSeed或者Seed值相同的话,随机数序列是一样的,只有不同的Seed才会产生不同的随机数序列。

消除心中疑惑,感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 00:38 , Processed in 0.076736 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表