天天财汇 购物 网址 万年历 小说 | 三峰软件 小游戏 视频
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页 淘股吧 股票涨跌实时统计 涨停板选股 股票入门 股票书籍 股票问答 分时图选股 跌停板选股 K线图选股 成交量选股 [平安银行]
股市论谈 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
商业财经 科技知识 汽车百科 工程技术 自然科学 家居生活 设计艺术 财经视频 游戏--
  天天财汇 -> 自然科学 -> 随机生成5位数,得到11111和得到54176的概率相同,为什么遇到前者时我们会觉得随机算法有问题? -> 正文阅读

[自然科学]随机生成5位数,得到11111和得到54176的概率相同,为什么遇到前者时我们会觉得随机算法有问题?

[收藏本文] 【下载本文】
以此类推,随机生成12位数,得到123123123123和得到835409173621的概率相同,为什么遇到前者时我们会觉得背后的随机生成方法可能有诈…
这个问题大概和Kolmogorov复杂度有关. 网上关于Kolmogorov的论述与科普的写得好的文章已经有很多, 何况我也没有正儿八经地学过算法信息论, 这里就随便写一点自己的理解献一点丑吧.
我们来看一个具体的情景, 这个例子来自我的老师写的文章 (实际上整个正文部分基本是原封不动照搬老师的理解. 不过我的老师不希望自己写的东西被人们看到, 这里就不放引用了) :
现在你作为玩家参与了一场赌局, 赌的内容是与另外一位玩家进行18次猜拳比赛. 谁赢的次数多, 巨额赌注便会花落谁家.
众所周知在重复博弈的石头剪刀布中, 混合最优策略是三种手势等概率随机出. 但人在物理上无疑是无法做到模拟随机的, 因此你决定在上场前掷18次骰子, 根据骰子点数mod3的结果来决定自己每次要出什么手势, 这样便可以做到完全随机, 从而无法被对手针对. 你如此做了, 并得到了111111111111111111的投掷结果 (在概率中这并不是什么值得稀奇的事, 一个像135466126462131425那样的 "看起来足够随机" 的结果和这个结果的出现概率是相等的. 或者说, 在你决定要掷18次骰子时, 任何一个将会出现的结果都和这个结果一样 "稀奇" ) , 也就意味着你要在猜拳比赛中出18次石头.
但我们知道, 你的对手并没有看到你用骰子决定手势的这个过程. 尽管你可以声明这一点, 但这种声明不过是无凭无据的威慑 (或者我们引入更干脆一点的条件: 猜拳中你们无法交流, 只是每一轮石头剪刀布后可以看到对方的手势) . 假定你被替换成了一个决定要出18次石头的傻子--我们都知道这种策略是傻子策略, 因为你的对手只要还稍有理智就会在发现规律后选择开始出布针对你--他在你对手眼里的行为和接下来要上场的你将不会有任何区别, 从而你对手的决策也不会有区别, 奖金的去向自然也是相同. 但另一方面, 用骰子生成一个随机序列的做法在数学上完全是有理可循的, 而石头剪刀布这种纯随机游戏的最优策略也是众所周知的.
由此一个尖锐的问题摆在我们面前: 一个傻子所决定的要出18次石头, 与一个18次掷出1的骰子生成的 "出18次石头" , 究竟有什么区别? 如果它们没有可分辨的区别, 我们究竟为什么会认为前者是愚蠢的而后者是可接受的 (甚至是最优策略) ? 不那么形而上学地问, 如果此刻的你真的投出18个1的结果 (这不过是若干同样可能的结果之一) , 你会在这样一次重大的猜拳比赛中出18次石头吗?
由此我们需要引入一个那种传统概率以外的手段来衡量一个序列是否是 "随机的" , 现在我们从自己的直观出发, 一步步衡量这里我们用 "随机性" 一词所想指称的到底是什么, 是不是一个良定义的概念.
从直观上讲, 在序列集合[6]^18的所有元素中, 我们会认为序列111111111111111是有规律的, 那么我们这么说是出于这个序列的什么特殊性呢? 一个可能成立的回答是 "这里1的出现频率显然过大了" . 但序列123456123456123456中不同元素的出现频率是均匀的, 而我们依然不会认为这个序列足够随机, 而是 "有规律的" . 回到上文那个猜拳比赛的例子中, 这意味着你选择了按 "石头--剪刀--布" 的循环出手势, 从而你的对手依然足够容易看出规律并加以针对 (当然18次可能有点少, 我们改成1000次便足以) . 这说明各元素出现频率的均匀与否还是不足以衡量我们所感受到的 "规律性" . 问题的根源究竟在哪里呢?
Kolmogorov复杂度对这个问题给出的回答是: 以上两个序列的问题出在, 它们可以用比它们自身更短的语句去描述. 想象你要向另一个人传达这两个序列, 只需要说 "18个1" 和 "3个123456" 即可. 但对于情境中给出的那个序列:
135466126462131425
除了把它抄一遍, 恐怕你没有什么特别便利的方法向另一个人准确无误地描述它.
换言之, Kolmogorov复杂度给出了这样一种洞见: 一个序列是否 "足够随机/有规律" , 可以用 "我最短能用多短的语句描述这个序列" 来衡量, 描述能压缩得越短, 就说明规律性越强.
当然, 这里 "描述" 一词的含义放到数学中是含混不清的. 想要在数学上定义何为 "描述" , 这无疑是图灵机与递归论的知识的用武之地. 下面的内容需要读者有一定递归论与可计算性理论的知识基础.
我们定义: 一个描述=一个程序+一个输入. 如果一个程序得到一个输入后, 输出的结果是一个数, 那么我们便认为这个程序与这个输入构成了对该数的描述 (当然某些程序对上某些输入什么也输出不出来, 这并不影响我们的定义) . 例如我可以写一个程序 "输出n遍1" , 再加上输入n=18, 就构成了一个对111111111111111111的描述. 对于过于没有规律的数串, 则可以写一个 "什么都不做" 的程序, 然后直接输入数串本身得到相同的输出. 这种保底的手段意味着任何序列的描述长度最坏不会比这个序列本身长太多.
由丘奇-图灵论题, 任何程序等价于一台图灵机, 而每台图灵机有一个标准的编码. 把程序对应的编码与作为输入的数串合并起来, 便得到了一个完整的 "描述" . 在此定义下, 对于111111111111111111的描述将会短于自身 (我不确定18的长度够不够, 不过这个例子可以随便放大, 反正总能论证我要说的意思) ; 而一个足够随机的序列只能用 "空图灵机+序列本身" 这种手段来描述, 从而长度会长于自身. 我们可以如此定义一个序列 "是随机的" : 它的所有描述的长度均不短于自身.
从直观上讲, 这种看似抽象的定义也符合我们一开始对 "有规律" 的朴素认识: 如果一个序列无法用更简短的程序去计算出来, 也就意味着它无法被我们预言, 从而确实是 "没有规律的" .
因为对人来说, 没有随机数, 只有随机数列
你觉得字符串 3F28CB71571C7 随机吗?
随机? 那我告诉你, 转换成十进制是 1111111111111111, 你现在还觉得随机吗?
不随机.? 那计算机生成了同一个东西, 因为打印方式不一样, 你的感觉为啥就不一样了?
这不就证明你的大脑其实只有 string 类型, 不存在 int 类型吗?
拿个笔尝试一下, 如果让你写一个二十位随机数, 你是不是会一位一位的写, 每写一位还要看看前面哪个出现的最少, 最终形成的数就会很分散, 不会有 11111111111111111111 这种
但是计算机完全不是这个原理, 计算机就是简单的根据前一个数算后一个数, 要是真的算出 11111111111111111111, 那就这样呗.
听起来很怪, 但是统计证明, 人类这种自以为随机的想法一点也不随机, 反而计算机这种死板的方法才是真正均匀的随机.
因为你给了11111特殊的意义,而没有给54176特殊的意义。
假如来玩一个抽五位数的游戏,主办方规定,抽到00001~99999里除54176以外的任何数,全都奖励1个亿。如果抽到54176就枪毙。
你第一个上去抽,结果第一把就抽中了54176,你会不会大骂主办方耍诈?
这个问题如果从贝叶斯学派的角度看,其实很好理解
当我们用某种算法,生成一个数时,计该事件为 D" role="presentation">DD
如果该算法是一个真正的随机算法,则计该事件为 T" role="presentation">TT 。相应的,如果这个算法有猫腻,实际上并不那么随机,就计该事件为 ¬T" role="presentation">?T\neg T
根据贝叶斯公式,有
P[T|D]=P[D|T]P[T]P[D|T]P[T]+P[D|¬T]P[¬T]" role="presentation">P[T|D]=P[D|T]P[T]P[D|T]P[T]+P[D|?T]P[?T]P[T|D]=\frac{P[D|T]P[T]}{P[D|T]P[T]+{ }{P[D|\neg T]P[\neg T]}}
P[T|D]" role="presentation">P[T|D]P[T|D] 表示的是:在观测到生成的是现在这个数的基础上,该算法没有猫腻的概率
P[D|T]" role="presentation">P[D|T]P[D|T] 表示的是:如果该算法没有猫腻,则生成的是这个数的概率
P[D|¬T]" role="presentation">P[D|?T]P[D|\neg T] 表示的是:如果该算法有猫腻,是非随机算法,则生成的是这个数的概率
P[T]" role="presentation">P[T]P[T] 和P[¬T]" role="presentation">P[?T]P[\neg T]是该算法没有猫腻和有猫腻的概率。在贝叶斯学派中,这两个概率一般是以作为固定值的先验概率的形式给出
至此,题主的问题,就可以用贝叶斯公式“翻译”为:为什么事件D是“生成11111”时,我们会认为 P[T|D]" role="presentation">P[T|D]P[T|D] 很低?
答案很简单,因为分母高了!
具体来说,是分母中的 P[D|¬T]" role="presentation">P[D|?T]P[D|\neg T] 这一项,影响了整个公式
大家可以想一下,我们会在什么场合下,想到11111这个数?
场合有很多,比如手指在1键上多按了一会儿,比如联想到五一劳动节,比如大街上看到五条单身狗,等等
这些场合,本质上无一例外都是非随机算法
也就是说,世界上有很多天然存在的非随机算法,可以生成11111这个数。那么,如果随便任选一个非随机算法,这个算法生成11111这个数的概率并不低
但是显然,并没有那么多的非随机算法,一下子生成的结果就是54176
因此,当事件D是“生成11111”时, P[D|¬T]" role="presentation">P[D|?T]P[D|\neg T] 会是一个相对较高的值。再加上P[¬T]" role="presentation">P[?T]P[\neg T]是以作为固定值的先验概率的形式出现的。因此,分母中, P[D|¬T]P[¬T]" role="presentation">P[D|?T]P[?T]P[D|\neg T] P[\neg T] 这一项,便会升高
而对于分母中的另一项(同时也是分子): P[D|T]P[T]" role="presentation">P[D|T]P[T]P[D| T] P[T] ,由于T已经假定算法是随机算法,因此无论生成的数是11111还是54176,生成概率都是相同的, P[D|T]P[T]" role="presentation">P[D|T]P[T]P[D| T] P[T] 的值因而也是没有区别的
因此,结论就是,当生成的数是11111时,公式中的其它项和生成54176时没有区别,只有分母中的其中一项变高了,进而通过公式计算出的 P[T|D]" role="presentation">P[T|D]P[T|D] 就会低了
所以,如果一个算法,生成的5位数是11111,那么我们可以认为,有更大的概率,该算法不是一个真正的随机算法
Q.E.D
推荐一个书目,帮我们用贝叶斯的视角理解整个世界:


可以用贝叶斯来解释。用事件A代表我们写了bug,事件B代表生成了11111。在没有写bug的情况下,生成11111的概率很小,大约为 P(B|Ac)≈10−5" role="presentation">P(B|Ac)≈10?5P(B|A^c)\approx10^{-5} ;而如果写了bug,比如说一不小心写成了把一个随机的一位数输出五次,那么生成11111的概率就会很大,大约为 P(B|A)≈10−1" role="presentation">P(B|A)≈10?1P(B|A)\approx10^{-1} 。于是根据贝叶斯:
P(A|B)=P(A)P(B|A)P(B)=P(A)P(B|A)P(A)P(B|A)+(1−P(A))P(B|Ac)" role="presentation">P(A|B)=P(A)P(B|A)P(B)=P(A)P(B|A)P(A)P(B|A)+(1?P(A))P(B|Ac)P(A|B)=\frac{P(A)P(B|A)}{P(B)}=\frac{P(A)P(B|A)}{P(A)P(B|A)+(1-P(A))P(B|A^c)}
估算一下这里面各项的大小就会发现,只要我们对于我们写bug概率的先验估计 P(A)" role="presentation">P(A)P(A) 显著大于 P(B|Ac)P(B|A)≈10−4" role="presentation">P(B|Ac)P(B|A)≈10?4\frac{P(B|A^c)}{P(B|A)}\approx 10^{-4} ,那么事后概率 P(A|B)" role="presentation">P(A|B)P(A|B) 就会非常接近1。而根据常识,程序员写出bug的概率显然远高于万分之一()
推广一下就是:在【生成算法有问题的先验概率】显著大于【生成算法没有问题时产生某个特殊数的概率】比上【生成算法有问题时产生特殊数的概率】时,我们就会推断生成算法大概率有问题。
因为注意力不集中,只能注意到11111的有趣之处,却注意不到54176的。
拉马努金病重,哈代前往探望。哈代说:“我乘的士来,车牌号码是1729,这数真没趣,希望不是不祥之兆。”拉马努金答道:“不,那是个有趣得很的数。可以用两个立方之和来表达而且有两种表达方式的数之中,1729是最小的。”


后来这类数称为的士数。利特尔伍德回应这宗轶闻说:“每个整数都是拉马努金的朋友。
11111和54176出现的概率一样,
但是“看起来像设计过的数字”和“看起来不像设计过的数字”出现的概率不一样。
前者指的是11111/12345/87654/13579这种看起来有规律的数字。
在1到100,000之间,看起来有规律的数字,显然少于看起来没有规律的数字。所以当你看到看起来有规律的数字出现的时候,你会觉得不可思议,因为在你眼中,小概率事件发生了。
随机生成5位数,得到43690和88888的概率相同,但你不知道的是,43690的十六进制是aaaa,88888的十六进制是15b38,你觉得88888特殊或者说有问题仅仅是十进制下的一个巧合而已。
一般认知中的“有问题的随机算法”,多指规律性过于明显,只随了一部分的随机。
在这种随机的前提下,得到规律性结果的概率会高于正常的随机得到规律性结果的概率。
于是,如果得到的结果是规律性的,那么用贝叶斯公式计算,随机算法有问题的后验概率会相对于先验概率有所上升。
一个具体一点的计算:
你和朋友赌抛硬币。你基本相信你的朋友,认为他有 0.1% 的概率会使用双正面硬币,99.9% 概率使用正常硬币。
然后他投出了连续20个正面。根据贝叶斯公式,硬币有问题的后验概率上升到了 99.9%。
如果 54176 被赋予了一些特殊的意义,例如,得到这个数时有额外的惩罚,这个时候,有问题的生成器更多是单独减增加 54176 的概率。于是,(没几次就)抽出 54176 时生成器有更大可能性有问题。
因为你遇到54176的时候并不会注意它是54176,而是把它当成了一个"一眼看起来不特别的数字",但是当你看到11111时是真的当成了11111.
随机到54176的概率和11111相等,但是随机到"一眼看起来不特别的数字"的概率当然很大。
当观察到小概率事件时自然会倾向于认为某些地方很可能出了问题。
从全体5位数中抽样的角度来说,概率确实是一样的,但人们脑海里的感觉是针对抽出来的这个数字而言的。从这个角度来说,11111比54176有规律得多,确实显得不太随机。
有答主说了一种复杂度衡量标准,k开头的英文单词,太长了记不住,就叫k复杂度吧,反正意思就是描述这串东西的最短长度。比如111111111只需要描述成"9个1",但587054681除了原封不动的抄一遍,应该没有更短的描述方法了。当然描述这个词准确来说是一个图灵机上的程序,输入描述后能解码输出原来的字符串。我一看就觉得,这个定义"有规律"的方法真的妙极了!我怎么没想到呢?可惜有个问题,计算k复杂度的问题显然是图灵不可解的,因为它需要枚举任何可能的图灵机,这个计算如果作为超图灵机上的程序,本身的复杂度估计是0'(和停机问题一样)。我想了一下,给一个具体的长度上限x,判定长度小于x的有限种字符组成的字符串的k复杂度应该是图灵可计算的,x可以任意大,所以这个还算好。
有人说了1145141919810这种数字串,本身没有规律,但知道野兽先辈的梗的人可以一眼记住。野兽先辈的知识本身不属于和字符串有关的程序意义上的描述,所以它的k复杂度和随便一个没规律的13位数差不多。但我们可以这么看,你学会野兽先辈的梗这个知识点需要一定的努力,这个努力程度(知识给你的大脑带来的信息熵变化)不会少于1145141919810和1111111111111之间的k复杂度的差距折合成的信息熵,所以从总的体系来看,一点毛病都没有。事实上,012345678910111213也有这样的问题,只是你没意识到。虽然数列a_n=n确实是一种简单的规律,但十进制计数法中0-9的十个符号之间没有规律啊。对不认识十进制数字的人来说,这和无规律数列其实也没什么区别,但111......1这种重复的序列无论如何都可以压缩(只要记住1这个字符)。我们可能对十进制的知识太默认了(相对于野兽先辈的知识),以至于都没意识到这一点。当然只要你继续写下去,比如0123......739084739085,这个即使对不认识十进制的人来说也是有规律的,因为把十进制计数法和进位规则用数学语言说清楚,绝对不需要几百万个字符,而012345678910111213不一样,描述十个数码和进位规则比这串字符更长,还不如直接抄一遍。
数学定义的“随机数”,按数学定义模拟出的“随机数”,人脑潜意识中想象出的“随机数”,和自然界中产生的“随机数”,这四者都不是一回事。
首先,如果要用从数学上验证“随机生成5个数的字符串”(暂不考虑0是否可以在首位)是否有问题,按照传统频率学派的思想,我们要将算法执行足够多次,然后统计“11111”和“54176”出现的频率是否相同且都接近10^5。
但这里就出现了明显的问题。首先,人脑对“万”这个数量级上的数量已经基本丧失了直观的数量感知,也无法想象将这样的试验执行到频率学派要求的起码10^8次究竟会是个什么情况,更不用说从中分析两个特定项的频率是否相等。我们看待“11111”这类字符串的角度并不是指它在数学上“不随机”,更多是指这个数字“不自然”。
但转过来想一下:如果只是生成两位数字,我们会觉得11比54更“不自然”吗?同样,如果生成五位数字时,11111是“不自然”的,那“10000”算是“不自然”吗?如果生成的是“11451”,还会觉得它不自然”吗?(比如题目描述就认为“114514”是“自然”的)而“11451”中已经出现了3个数字1,这个情况在10^5的样本空间里已经是极小了。
从这个角度就可以理解:大众惯性思维中理解的“随机”并不是数学意义的“随机”,而是指这个结果足够“混乱”。而大众下意识列举出来“混乱”的例子,又往往包含了先入为主但实际已经破坏了真随机的潜意识观念。比如,本题拿来和“11111”对比的这个数字“54176”,我们暂且理解为这是提问者用自己潜意识构想出的一个“思维随机数”(而不是从哪个现实场合复制的数字),其中就明显体现了惯性思维中最经典的“随机”陷阱:
字符串的起始是数字5字符串中5个数字各不相同
实际上,在所有5位数(字符串)中,真要满足以上这两个条件的数,概率只有(1*9*8*7*6)/10^5=0.0304,其实同样是数学上的小概率(没有达到5%的置信区间标准)。这里可以说明两点:一,人脑对十进制数的线性思维下,位于中间的数字最容易成为思考“随机”的落脚点,所以如果让人“随便说一个数字”,人脑下意识的反映就是折中,而很难联想到位于两级的0、1和9(题目列举的“54176”中有4个数都是在5±2的区间更印证了这一点);二,人脑存在“有效数字”的限制,一般来说上限就是两位(因而生活中大多数可操作的数字都会设计成两位,如考试分数),一旦数位超过2位,我们的潜意识便认为2位有效数字以上的数位应该是“混乱”的。所以我们不会觉得11比54“不自然”,因为我们会把11和54都理解成有效数字;但“11111”“123123”这样超过2位且存在明显生成规律的,我们潜意识中就不认为它们是数字。
=================
从另一个方面看,人脑存在着“将随机理解为折中”“将随机理解为混乱”这两大潜意识,恰是说明了——人脑是在用“加法”的思维来理解世界。对于这一点,最近正好读了法国数学作家米卡埃尔·洛奈的作品《数学的雨伞下》,其中的一章就是对这个问题的论述。
回到这个问题的题干,如果这里的“随机生成5位数”指的是“在自然界中随机生成5位数”,比如说对一个物理量进行能取5位有效数字的测量,那么,“得到11111”和“得到54176”的概率其实并不相同(得到11111的概率远高于后者)。当然5位有效数字测量的样本过大,但我们每个人都可以亲自验证(比如统计一下自己的所有发表在知乎上的阅读数据)——只取前两位有效数字的话,得到11的概率要远大于54(以及任何其他数字)。
看过一些科普作品的人应该会知道,上面的现象就是著名的“本福特定律”,指的是自然生成的数据中,首位数是1的概率大于其他所有数字,且首位数从1到9概率依次递减。《数学的雨伞下》一书对这个现象给出了一个精炼的诠释——本福特定律说明自然界的累积规律是“乘法”,自然界的数字存在“随机”的均匀特性,但均匀的不是十进制数本身,而是十进制数的对数。而将对数转化为指数(自然数量增长的基本模型)后,十进制数位便会显现出明显的偏向性。
所以,现在我们可以看出数学随机、人脑随机和真自然随机的区别了——
数学随机的前提是“独立重复试验”,也就是试验之间不能有任何相互影响。只有“独立重复试验”才能保证十进制数位的取值概率达到真正意义的“均匀”,每一位数取0~9,以及生成结果为11111或54176的概率才能相等。
但是,人脑和自然都不能进行“独立重复试验”。人脑会在潜意识里把数字代入十进制数位下的加法计算,也就是认为十进制数是从1开始一个一个数出来的,于是,人脑会将数字的“均匀”理解成十进制数加法算术平均的均匀,也就是5及±2的区间。而“均匀”的其他数位意味着需要进行一定的加减计算,于是其他位数不能与前一位相同,这也就形成了“随机就是混乱”。
自然的基本规律本来是均匀(随机)的,但自然规律的“均匀”是在对数层面,也就是进行乘法计算的次数。可以理解成不同的事物触发增长的机会“独立重复”的,但增长本身并不独立(指数增长的基本模型是细胞分裂这样的内源动力增长)。而执行全部乘法(指数)计算,在基于加法的十进制计数系统下得到的最终结果,同样会显现出明显的不均匀——越靠前的数字,出现的几率越大。


广告
数学的雨伞下:理解世界的乐趣(图灵出品)
京东
¥49.80
去购买?
参考阅读
有没有人看完了各种葛立恒数比较类问题之后,感觉宇宙也没有想象的大?
假如奥运会设置了铁牌、铬牌、锌牌、铝牌等奖励4、5、6、7名,是否有利于体育事业健康发展?
因为人的“觉得”本身就有问题。比如:
我也觉得,如果随机生成了100万个五位数,但一次都没有出现诸如11111、12345等你们觉得有规律的数,这种真的有问题的随机算法,你们反而不会觉得有问题。
简并度。
如果把看到54176和看到45176,14567这些由1,4,5,6,7各一个组成的五位数都看成‘14567’类,那么‘14567’类的简并度就是120,其中包含120个5位数,而类似的,‘11111’类简并度是1,所以看到54176的概率理应是看到11111的概率的120倍。
借楼问一下,如果随机生成6位数得到114514,会让人觉得随机算法有问题吗
因为你下意识把11111,22222,33333,44444等数字归为了一类,即每一位都完全相同的数字。而恰好生成一个满足此条件的数字的概率当然小于一个平凡数字的概率。
因为五个数字都不一样的概率是30.24%,五个连号的数字的概率是0.01%,虽然出现11111和54176概率一样,但是它们代表的情况概率差很大。
我想分享一下我的理解,可能不太对,还希望大家多多批评指正:
我的结论是,仅仅通过一个样本,在对随机数算法没有任何先验知识的情况下,绝对不可能判断随机数算法是否正确。
我们可以构造原假设:
H_0:\theta=\theta_0, \theta_0=\{\forall x, p(x)=1/90000\}
和备择假设:
H_1:\theta=\theta_1,\theta_1=\{\exists x, p(x)\neq1/90000\}
那么,Neyman-Pearson定理指出best critical region W 应该满足:
\frac{p(x|\theta_0)}{p(x|\theta_1)}\geq k, \forall x \in W
\frac{p(x|\theta_0)}{p(x|\theta_1)}\leq k, \forall x \in \bar{W}
但是现在x只有一个值(x=11111),要么在W里,要么在W外。如果在W外,我们显然没法拒绝这样的假设。如果在W内,我们必然可以构造一个特殊的有问题的随机数生成算法,使得x=11111不可能发生。
因此我提出一个可能错误的观点,这种假设只能在大规模数据下验证,单个数据不可能验证的出来。
随机生成5位数,除了得到11111会让你怀疑随机算法有问题,得到以下的数也大概率会让你有同样的怀疑想法(某些数可能让你怀疑的感觉相对稍弱):
10000,20000,……,90000
22222,33333,......,99999
12345,23456,.....,56789
13579,24680,
12121,21212,31313,32323,……,98989,(任意两个数字ababa的排列都差不多效果)
10001,20002,……,90009
产生这样想法的原因在于,你知道它们遵循一些较为熟悉的规则进行排列,所以认为它们较为特别,直觉上感觉随机生成这种数的概率非常小,从而压过了前面那句“概率相同”的理性认知。
真正起作用的不是“小概率事件在一次试验中不会发生”,而是“语义饱和现象导致11111看起来不像个数字”造成的。
一些问题看起来与本问题类似,但道理完全不同:5次掷同一个骰子都得到1点、10次掷同一枚硬币全是正面向上。因为存在一种可能,在骰子、硬币上做了手脚(比如显著增加6点、反面处的重量,实际上它们已失去均匀性,原本等概率的情形不再等概率),使掷出1点、正面向上的概率接近1。再用假设检验的道理,用“骰子(硬币)均匀”作原假设,“不均匀”作合理的备择假设,因 6\times(\frac16)^5≈0.0007716<0.05(每次的点数都相同的概率), 2\times(\frac12)^{10}≈0.001953<0.05(每次向上的都是同一面),得出骰子或硬币不均匀的结论。
如果把本问题条件改为“5次使用随机生成数字0~9的发生器,每次都生成1”,这样质疑完全合理。但一次生成0~99999的数字,就不同了:计算机用二进制表示数字,可直接转化为八进制、十六进制等,而不是十进制。生成11111(用八进制叙述),只不过是“从0~303237中选取一个八进制整数,取到25547”,是再平常不过的,不可能因程序缺陷导致这一类数字产生的概率增加。反而16384、32768等化成二进制后简单的数字,才真正可能因故障造成产生频率增加。这里要忽略25547(OCT)恰好是上限303237(OCT)的因数这个条件,因为(用6位的类似情况说明)人们通常不会一眼就认为 \frac{999999}{7}=142857 、\frac{999999}{13}=76923等数字像 \frac{999999}{9}=111111那样特殊。
由此也能看出,某次实验发生小概率事件,并不能直接说明模型有问题,因为只要取值空间足够大,任何一个确定的结果都是小概率事件。只有出现有合理解释并能否定原模型条件的小概率事件,才能说明存在问题。
所以,唯一能解释的只有视觉现象。一种现象叫“语义饱和”,长时间看某一个汉字,就会短暂地忘记它的字义,只看到它的形状。在语言中,人们通常不会使用重复特别多次的叠词,如“是是是是是是是是是是是是是是是是是是是是是是是是”。否则不但不能表达足够的含义,读者还会因语义饱和而被当作重复的图形,而不是汉字,因为地面砖、天花板等图案重复是常见的。
哪怕是123456、314159、285714、123123、123321这些有其他规律的数字(不包括3次以上、3位以内数字的重复如111、1212121212),人们第一眼也会当作数字;而200000、000003、999997等由0或9组成的重复数字作为数值,又是经常出现的(重复0便于计算,常用作设定初值;与小整数相减即重复9,而且重复9取近似也是重复0),经历大量经验后也被接受。
但1~8各数字的重复,(它们的近似值同样不能)就不能给运算带来简便,它们的突然出现就会显得突兀。记录的数字中如果出现611111、3022222作数值,重复部分就会因语义饱和而不被识别为数字,而是没有意义的图形。这样看来,得到11111,并不是因为“像掷5次骰子全得到1点那样,发生了有合理备择假设的一个小概率事件”,而是因为“11111会由于语义饱和而看起来不像个数字,好像产生了像16AE5那样的非数字,从而被认为程序有问题”,这是一种错觉。
更为严重的后果是,语义饱和使重复数字不便于看出重复次数,容易对数字的大小产生误判。如41271>2356不难判断,但11111与8888的大小关系就容易被误判。因此,如果记录或汇报中实际产生这些数字,有时会在误差允许的范围内人为修改。如将实际数字611111、3022222改为611093、3022198。
下面给出两个MAtlab程序,其一是生成各数字不全相同的5位数(首位可以为0,下同):

randi([0,99989]);
ans+1+fix(ans/11110)
%  10次运行结果:65547、17118、70604、(0)3183、27692、(0)4617、(0)9713、82345、69482、31709

其二是各数字全不同的5位数字:

randi([0,30239]);
a=fix(ans/3024);ans=ans-a*3024;b=fix(ans/336);ans=ans-b*336;
c=fix(ans/42);ans=ans-c*42;d=fix(ans/6);e=ans-d*6;
b=b+(b>=a);c=c+sum(c>=sort([a b])-(0:1));
d=d+sum(d>=sort([a b c])-(0:2));e=e+sum(e>=sort([a b c d])-(0:3));
a*10000+b*1000+c*100+d*10+e
%  10次运行结果:12768、49765、95301、34706、58627、23140、74592、25967、50631、69823

虽然这样生成的数字看起来更加随机,却是背离初衷的:因为增加“各数字不全(或全不)相同”的条件,随机性实际上减少而非增加了。
数字重复的问题,来自位值制的使用。罗马数字、古埃及数字等用不同的符号表示不同数位上的数字,11111写成 \bar{X}\bar{I}CXI 就不会显得特殊。在阿拉伯数字推广后,记录格式得到统一,方便了交流,但也造成了表达方式单一从而无法去除不详、不雅含义以及重复数字视觉的问题。
一种替代方案是:3次以上重复的一位或两位数字(0或9除外),第3、4次用t、q(来源于3、4的词头tri-、quad-的首字母,t或tt读作“重(chóng)”,tq或ttqq读作“重复”)代替原数,之后恢复原数写法。如3333333333、1212121212改写为33tq33tq33(三三重复三三重复三三)、1212ttqq12(一二一二重复一二),以提高重复数字的辨识度,避免过分突出。
对于加“十”、“百”、“千”等计数单位的数字,t或q可按原来的数字读出,如11t读作“一百一十一”或“一百一十重”均可。代表多位数字的“重”或“重复”只在最后加一个计数单位:如果所代表的某个数字处在万位、亿位等数级位,就加对应的数级位;否则,按所代表的最末位数字的计数单位读出。如1212ttqq12可读作“十二亿一千二百重复万一十二”,33tq3可读作“三万三千重复十三”。
[收藏本文] 【下载本文】
   自然科学 最新文章
海南一村民被眼镜王蛇咬死,多名消防员和村
有哪些不起眼的牢底坐穿兽?
美国耕地面积比中国大,可为什么粮食产量不
如何看待同济大学2024国家科技三大奖颗粒无
假如航母被蓝鲸全速前进撞一下会怎么样?
你见过最狠的SCI评论是什么?
蒙古是个怎样的国家?
为什么屠呦呦再三落选院士?
如何评价未明子的庶政学(MMPP)?
为什么人类进化得如此脆弱?
上一篇文章      下一篇文章      查看所有文章
加:2024-01-19 21:47:36  更:2024-01-19 22:14:52 
 
 
股票涨跌实时统计 涨停板选股 分时图选股 跌停板选股 K线图选股 成交量选股 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
网站联系: qq:121756557 email:121756557@qq.com  天天财汇