如何可以随机生成一组10位或者20位的数字呢?[已解决]
本帖最后由 病毒专收员 于 2011-7-30 08:58 编辑如何可以随机生成一组10位或者20位的数字呢?
求解!!求列子。 如果需要参与数学运算的话,64位无符号整数只能是0x7FFFFFFFFFFFFFFF,也就是9223372036854775807.
生成18位最安全.
#include <ARRAY.AU3>
#include<file.au3>
$abc = _Random(20)
MsgBox(0, IsNumber($abc), $abc)
Func _Random($number)
;~ If $number > 19 Then Return SetError(0)
SRandom(@SEC)
Local $random
For $i = 1 To $number
$random &= Random(0, 9, 1)
Next
Return Number($random)
EndFunc ;==>_Random
如果需要参与数学运算的话,64位无符号整数只能是0x7FFFFFFFFFFFFFFF,也就是9223372036854775807.
生成18位 ...
3mile 发表于 2011-7-26 17:34 http://www.autoitx.com/images/common/back.gif
请解释每一段的作用么?? 作用就是随机生成一个数字 然后拼起来 回复 4# sxd
感谢感谢。 但这样得到的是有偏随机数(并且偏差非常大),而不是均匀随机数! 回复 6# happytc
有几种语言可以生成真随机的? 真随机数和伪随机数中的均匀随机数和有偏随机数是不同的概念。 真随机数和伪随机数中的均匀随机数和有偏随机数是不同的概念。真随机数之间是没有任何关联性的,而伪随机数之间多多少少都有点关联,所以称为伪随机数。但伪随机数也可以做到均匀分布的.当然真随机数是均匀分布的 本帖最后由 netegg 于 2011-7-29 04:37 编辑
回复 9# happytc
那好,就按你的概念,什么语言可以生成均匀随机数?
补充:想了想,大概量子力学里的测不准原理可以产生你所说的均匀随机,或者混沌力学系统 本帖最后由 happytc 于 2011-7-29 05:59 编辑
回复happytc
那好,就按你的概念,什么语言可以生成均匀随机数?
补充:想了想,大概量子力学里的测不准原理 ...
netegg 发表于 2011-7-29 04:18 http://www.autoitx.com/images/common/back.gif
其实你想歪了。也看出你的专业肯定不是数学相关的。
首先,这个不是我的概念,而是统计学里的概念。再则上面我说的,并不是争议要产生真正的随机数,而是指3mile的方法得到的随机数基本上是‘一致有偏随机数’。基本在所有算机语言的伪随机产生都是用线型同余法产生的,这样的随机数至少把它们放在一个周期内的一维坐标上基本上均匀分布的(其二维空间上就不是均匀分布的了),也就是Random()函数产生的随机数就是均匀随机数,而上面3mile产生的,就是在其周期内的一维坐标上,也是分布非常偏的分布的。
你说的什么量子力学,什么测不准原理等等,估计你是想表达产生真正的随机数,真正的随机数有很多特针,如:分布均匀性(从一维到N维都是均匀的),抽样随机性,试验独立性,前后一致性
而伪随机数,满足 “分布均匀性”还是能做到的,最难做到的是后面的“抽样随机性,试验独立性”,所以称为‘伪’,就是它们是有相关联的,而不是独立性的。估计你是想表达:生成独立性的随机数要用到什么‘量子力学的测不准原理……’ 真随机数仅是数学问题吗?应该是哲学问题吧. 真随机数仅是数学问题吗?应该是哲学问题吧.
3mile 发表于 2011-7-29 08:47 http://www.autoitx.com/images/common/back.gif
那是,真随机数那是一种理想状态。
这里我们讨论的是计算机产生的伪随机数,而我想说就是想产生大周期的伪随机数,要想得到的随机数分布比较均匀,一般采用混合同余产生比较好(呵,以前一篇论文里涉及这个,所以比较熟),可以用Monte-Carlo方法模拟証明。其中有种移位法生成随机数的,就跟3mile的方法类似,当然3mile的直接把数‘&’连起来,显得更粗点。
当时用了‘混合同余’,‘乘同余’,‘加同余’; ‘平方取中’,‘乘取中’;‘移位’等些方法产生伪随机,后用Monte-Carlo方法模拟结到同余法效果最好,移位法效果最差 回复 13# happytc
多谢指教. 自动连接到无线网络特定的ssid
页:
[1]
2