MATLAB随机数为什么会重复?

首先,各位不妨在新启动的MATLAB中使用randperm生成随机整数,看看结果是否和笔者一致?

randperm 是一个返回随机整数的函数,例如 randperm(10) 以随机顺序返回从 1 到 10 的所有整数。

>> randperm(10)

ans =

     6     3     7     8     5     1     2     4     9    10

尝试过的朋友们可能会发现在新启动的MATLAB中,上述命令生成的随机数是相同的,而且与MATLAB版本、操作系统等因素无关。

同样的,使用randrandirandn等函数同样会在新启动的MATLAB会话中每次生成相同的随机数。

>> rand

ans =

    0.8147

或是

>> randn

ans =

    0.5377

随机数相同的原因

事实上,MATLAB中的随机数并非纯粹意义上的随机数,而是完全确定的。

不止MATLAB,其实现代编程语言和模拟平台中使用的所有“随机数”生成器(pseudorandom number generator)都是完全确定性的,是通过一定的算法使用程序生成的伪随机数, 而通过物理现象产生的随机数才是真随机数。

真伪随机数之间的最大差别在于是否可以预测。

在MATLAB中,所有随机数函数(randrandnrandi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值