Ariduino入门笔记——6. Arduino 默认函数(随机数)

random()

生成伪随机数。

函数原型

  • random(max)
  • random(min, max)

参数

  • min: 生成随机数的最小值,缺省/可选
  • max: 生成随机数的最大值

返回

返回最小值到最大值-1,数据类型为long。没有填写最小值时,默认为0

long randNumber;

void setup() {
  Serial.begin(9600);

  // if analog input pin 0 is unconnected, random analog
  // noise will cause the call to randomSeed() to generate
  // different seed numbers each time the sketch runs.
  // randomSeed() will then shuffle the random function.
  randomSeed(analogRead(0));
}

void loop() {
  // print a random number from 0 to 299
  randNumber = random(300);
  Serial.println(randNumber);

  // print a random number from 10 to 19
  randNumber = random(10, 20);
  Serial.println(randNumber);

  delay(50);
}

学过写随机数的朋友,应该知道计算机设备不能产生真正的随机数,这是因为随机数的产生本质是通过数学算法进行生成的,也就是说如果输入 x x x 唯一且确定,那么产生的随机数输出 f ( x ) f(x) f(x) 也一定是唯一且确定。

所以我们通常用计算机上的时钟脉冲信号作为产生随机数的种子。自然,Arduino这一类的嵌入式设备,也是需要种子的。而它的种子函数就是:

randomSeed()

但是我们还需要类似时间的脉冲信号,用来驱动种子。所以正如上面用例一样,使用 analogRead() 读取0号针角产生随机脉冲信号。另外就是要特别注意的一点,就是随机数的生成范围应该满足你代码的合理需求范围,毕竟嵌入式设备的资源十分有限,过大的范围并不能带来性能的提升,甚至可能带来你所不期望的异常。

randomSeed()

随机数生成种子,每使用一次,会产生一组随机数数列。当你需要尽可能均衡的生成一组随机数数列,那么就可以使用这个函数。而如果你需要产生一组固定的随机数数列,那么可以给它一个固定值。

函数原型

randomSeed(seed)

参数

seed: 生成伪随机数数列的种子. 数据类型 unsigned long.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值