查看: 400|回复: 3
打印 上一主题 下一主题

Arduino randomSeed(seed) 和 random有什么区别呢

[复制链接] qrcode

22

主题

29

帖子

85

积分

注册会员

Rank: 2

积分
85
楼主
跳转到指定楼层
发表于 2015-10-11 04:25 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不都是生成随机数字吗 具体有啥区别呢
回复

使用道具 举报

0

主题

82

帖子

4

积分

新手上路

Rank: 1

积分
4
沙发
发表于 2015-10-11 04:25 AM | 只看该作者
randomSeed(seed)

randomSeed( )函数用来设置随机数种子,随机种子的设置对产生的随机序列有影响。函数无返回值,原型如下:

void randomSeed(unsigned int seed)
{
       if (seed != 0)
       {
                 srandom(seed);
       }

}


random
所在的头文件
stdlib.h
 
原型
int random(int num);
random函数返回一个0~num-1之间的随机数. random(num)是在stdlib.h中的一个宏定义. num和函数返回值都是整型数.
 
2描述编辑
random()函数将生成伪随机数。
 
3语法编辑
在arduino中
random(max) 
random(min, max)
min - 随机数的最小值,随机数将包含此值。 (此参数可选)
max - 随机数的最大值,随机数不包含此值。( 数据类型为long )
 
 
 
    形式:random(long max)
 
    random(long min, long max)
 
    参数:max为输出随机数范围的最大值。
 
    min为输出随机数范围的最小值。
 
    该函数以randomSeed()设定的种子输出指定范围的整数伪随机数,random(long max)相当于random(0,long max),输出0~max范围的整数随机数。

回复 支持 反对

使用道具 举报

0

主题

100

帖子

44

积分

新手上路

Rank: 1

积分
44
板凳
发表于 2015-10-18 11:43 AM | 只看该作者

Random函数你可以试验一下,会发现它生成的数并不是随机的,很有可能会每次一模一样

Randomseed虽然是伪随机,但是每次产生的数都不一样。

一般我都用randomseed(time)

回复 支持 反对

使用道具 举报

0

主题

87

帖子

22

积分

新手上路

Rank: 1

积分
22
地板
发表于 2015-10-19 07:38 PM | 只看该作者

 仅仅通过random()产生的随机数是具有一定的序列的,每次使用结果可能相同。但是如果先使用randomseed(X),通过设置不同的X值,再使用random()可以得到不同序列的随机数。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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