第107章 三十二个证人(2 / 7)
陈启明这种长期和底层性能打交道的人,要的当然不是这种充满分支跳转,在现现代cpu流水线里到处添堵的低效正確。
而在去追求那个极致的快之前,江临的数学直觉告诉他,必须先解决一个哲学问题。
【怎么用严谨的数学逻辑,去证明一段晦涩的排序代码,对全宇宙所有可能出现的输入组合,都百分之百地正確?】
最直观也是最笨的办法,是暴力地把这五个数的全部大小关係组合,挨个枚举一遍。
那么五个数到底有多少种不同的全排列?
简单的组合数学。
5!
一百二十种。
这个数字小到机器一瞬间就能跑完並验证。
这让江临难免就想起了那块砖。
做江氏砖的时候,刻进他骨头里的数学动作,就是把一个庞大到趋於无穷的边界状態空间,精妙地压缩成机器能穷举人能覆核的有限状態形式。
一百二十確实不大。
可如果是频繁出现在高级资料库索引中的,排八个数,排十六个数呢?
8!
四万种,机器依然能够轻鬆秒杀。
但是到了十六个数。
16!
二十万亿级別。
对普通程序来说,这已经不是多跑一会儿的问题,而是足以把最笨的全排列验证拖进泥潭。
如果mps框架建立在这种愚蠢的全排列穷举上,它將迅速死在起跑线上。
江临转了一下手中的原子笔,大脑的记忆宫殿开始高速检索。
很快,他放下了笔,在键盘上敲下了一行学术检索词。
zero-one principle sorting network
(排序网络:零一原理)
他其实早在废土时间里,在啃噬那些浩如烟海的计算机科学巨著时,就已经做了相关的知识储备。
只是在这之前,它仅仅只是停留在离散数学课本里一条定理这样的程度上,並没有迫切的用武之地。
而现在,江临认为这条优美的定理可以成为mps-kernel的第一块地基。
在理论计算机科学中,零一原理可以高傲地宣称——
一个由比较—交换操作固定地构成的比较网络,它是一个绝对正確的排序网络,若且唯若,它能够极其正確地將所有仅仅由数字0和数字1构成的有限输入序列,完全排好序。
这条定理的杀伤力在於,它无情地斩断了无限与有限的边界。 ↑返回顶部↑
而在去追求那个极致的快之前,江临的数学直觉告诉他,必须先解决一个哲学问题。
【怎么用严谨的数学逻辑,去证明一段晦涩的排序代码,对全宇宙所有可能出现的输入组合,都百分之百地正確?】
最直观也是最笨的办法,是暴力地把这五个数的全部大小关係组合,挨个枚举一遍。
那么五个数到底有多少种不同的全排列?
简单的组合数学。
5!
一百二十种。
这个数字小到机器一瞬间就能跑完並验证。
这让江临难免就想起了那块砖。
做江氏砖的时候,刻进他骨头里的数学动作,就是把一个庞大到趋於无穷的边界状態空间,精妙地压缩成机器能穷举人能覆核的有限状態形式。
一百二十確实不大。
可如果是频繁出现在高级资料库索引中的,排八个数,排十六个数呢?
8!
四万种,机器依然能够轻鬆秒杀。
但是到了十六个数。
16!
二十万亿级別。
对普通程序来说,这已经不是多跑一会儿的问题,而是足以把最笨的全排列验证拖进泥潭。
如果mps框架建立在这种愚蠢的全排列穷举上,它將迅速死在起跑线上。
江临转了一下手中的原子笔,大脑的记忆宫殿开始高速检索。
很快,他放下了笔,在键盘上敲下了一行学术检索词。
zero-one principle sorting network
(排序网络:零一原理)
他其实早在废土时间里,在啃噬那些浩如烟海的计算机科学巨著时,就已经做了相关的知识储备。
只是在这之前,它仅仅只是停留在离散数学课本里一条定理这样的程度上,並没有迫切的用武之地。
而现在,江临认为这条优美的定理可以成为mps-kernel的第一块地基。
在理论计算机科学中,零一原理可以高傲地宣称——
一个由比较—交换操作固定地构成的比较网络,它是一个绝对正確的排序网络,若且唯若,它能够极其正確地將所有仅仅由数字0和数字1构成的有限输入序列,完全排好序。
这条定理的杀伤力在於,它无情地斩断了无限与有限的边界。 ↑返回顶部↑