周期长度生成的随机数rand()和randn ()

18视图(30天)
你好,
据我所知,(制服)随机数生成器将产生的数字会重复。
这是总是这样吗?是否可以在哪里看到过这段长度是多长时间,统一号码生成器rand () ?
并randn()使用rand () ?有办法看到randn编码是()?
其实我想知道是什么randn的时间长度(),如果输出的实际上是重复一段时间后。
非常感谢你的帮助!:)
问候
苏菲

接受的答案

史蒂文的主
史蒂文的主 2023年5月8日12:03
看到“ 选择一个随机数字生成器 “节 这个文档页面 的简要描述每个可用的随机数生成器在MATLAB及其近似周期。
我们不分配的源代码 兰德 randn

答案(1)

乔纳斯
乔纳斯 2023年5月8日在42
编辑:乔纳斯 2023年5月8日10:45
不要混淆自己,随机数没有一段长度,但你实际上是什么意思可能如速度之后,可能会再次出现。这不是决定性的,但是你可以测量如意味着数量的克莱门特。之后又出现一个特定数量:
简短的例子与数字1到100
numberOfPossibilities = 100;
data =兰迪(numberOfPossibilities 1 e6 1);
nr = 1: numberOfPossibilities
在哪里=找到(数据= = nr);
间距= diff ();
meanSpacing (nr, 1) =意味着(间距);
结束
disp (meanSpacing”)
列1到19 99.8758 100.6833 101.6778 101.5189 99.8014 100.6575 100.1841 101.7151 100.2505 100.5372 100.0663 98.9614 101.1416 98.2634 97.5752 101.8207 99.1696 99.2484 99.4164列20通过38 100.1717 100.1275 100.4499 99.7139 98.7456 101.6561 98.9993 99.8174 99.9619 100.3358 98.5253 97.4752 99.9273 99.0303 101.2657 100.9726 101.1186 97.5004 101.2726通过57列39 100.8305 99.5587 98.4710 99.4178 99.3804 98.8412 99.9486 100.9847 99.5266 100.0800 101.2774 100.0746 99.4222 100.0274 98.1896 98.3103 100.2012 99.7047 99.8475列58 76 99.8735 100.9039 101.2885 101.5181 99.3311 101.0973 100.2707 99.2883 100.9896 98.5731 101.1047 101.6660 100.6660 100.0169 99.9413 101.3303 101.2446 100.1078 99.8385列77年到95年100.6228 100.3901 99.5440 100.2714 99.1937 99.6922 99.7770 100.2451 99.4812 99.2587 100.0448 100.6201 98.9741 99.1781 99.5432 99.6016 100.5860 100.1544 98.4221列96年到100年100.5930 101.2390 98.7681 101.2734 99.6102
如您所见,这个数字接近的数量可能的整数值
但输出几乎永远不会重演如果有足够的输出值。例如:如果你有1000种可能的输出和1 e6的序列值,一个精确的重复的概率是(1/1000)^ (1 e6)
注意:随机数字是随机的,如果你有均匀分布,特定数量的概率总是相同的,无论你有吸引很多第一次或1000次。
1评论
苏菲布拉姆
苏菲布拉姆 2023年5月8日中午
编辑:苏菲布拉姆 2023年5月8日在12:02
非常感谢你的回答!:)
我已经担心“周期长度”一词可能会让人困惑,我只是找不到一个更好的词。
我的意思并不是说一个随机数周期长度,但是,如果我生成一个veeeery长序列(或矢量)的随机数(例如使用rand()),那么这将(我的理解)在某种程度上重复。
因为我们生成并不是真正的随机棕土,但根据一些伪随机数的算法,例如Mersenne-Twister MT19937ar (https://en.wikipedia.org/wiki/Mersenne_Twister)。这些算法是周期性的。
蒙特卡罗方法的“手册”(Kroese)我读这MT19937ar算法(2011)默认MATLAB的随机数生成。
但我不确定它是影响(现在仍然)背后rand()和randn兰德()()使用,所以我不确定我是否可以得出这样的结论:周期长度是MT19937ar。
不过,我想我不需要担心时间长度可能太短使用MATLAB内置函数:D
只是很高兴知道正在发生什么。

登录置评。

类别

找到更多的在随机数生成帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!