《来自圣经的证明》收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本《来自圣经的算法》,哪些算法会列入其中呢?最近,有人在 StackExchange 上发起了提问,向网友们征集那些来自圣经的算法。众人在一大堆入围算法中进行投票,最终得出了呼声最高的五个算法:
第五名: BFPRT 算法
1973 年, Blum 、 Floyd 、 Pratt 、 Rivest 、 Tarjan 集体出动,合写了一篇题为 “Time bounds for selection” 的论文,给出了一种在数组中选出第 k 大元素的算法,俗称”中位数之中位数算法”。依靠一种精心设计的 pivot 选取方法,该算法从理论上保证了最坏情形下的线性时间复杂度,打败了平均线性、最坏 O(n^2) 复杂度的传统算法。一群大牛把递归算法的复杂度分析玩弄于骨掌股掌之间,构造出了一个当之无愧的来自圣经的算法。
第四名:快速排序
快速排序算法是 1960 年由英国计算机科学家 C.A.R. Hoare 发明的,是一种既高效又简洁的排序方法,现在已是学习算法的必修内容之一。快速排序的思想并不复杂,妙就妙在那个线性的数据分割过程,而真正最牛 B 的则是对整个算法的时间复杂度分析。我曾写过一个快速排序平均 O(n log n) 的证明,分析过程绝对值得欣赏。
第三名:并查集
严格地说,并查集是一种数据结构,它专门用来处理集合的合并操作和查询操作。并查集巧妙地借用了树结构,使得编程复杂度降低到了令人难以置信的地步;用上一些递归技巧后,各种操作几乎都能用两行代码搞定。而路径压缩的好主意,更是整个数据结构的画龙点睛之笔。并查集的效率极高,单次操作的时间复杂度几乎可以看作是常数级别;但由于数据结构的实际行为难以预测,精确的时间复杂度分析需要用到不少高深的技巧。
第二名: KMP 算法
KMP 算法是一种非常有效的字符串匹配算法,它告诉了人们一个有些反直觉的事实:字符串匹配竟然能在线性时间里完成!整个算法写成代码不足 10 行,但其中蕴含的天才般的奇妙思想让算法初学者们望而却步,而它的复杂度分析则更是堪称经典。
第一名:辗转相除法
辗转相除法是 Euclid 的《几何原本》中提到的一种寻找两个数的最大公因数的算法。无论是简洁的算法过程,还是深刻的算法原理,抑或是巧妙的复杂度分析,都称得上是来自圣经的算法。而扩展的辗转相除法则构造性地证明了,对任意整数 a 和 b ,存在一对 x 、 y 使得 ax + by = gcd(a, b) 。这一结论的普遍性和实用性让它成为了数论中的基本定理之一,在很多数学问题中都能看到它的身影。
KMP….. 又忘掉了
惊叹!但是基本没几个懂得……
拜读一下……
是沙发吗?
我悲哀了……
什么啊??
第一个MS在APIO时听CDQ提到过,m67牛能写篇文章阐释一下么?
跟圣经有什么关系?
骨掌?M67牛应该知道盒子世界的。。
能专门介绍一下第五名么
跟圣经没有关系吧
回acumon :比喻而已
可能叫算法圣经更合适吧
只有在高中时候信息课上接触过辗转相除法,其他的都没见过。
五四三二确实都很牛。。第一名是Euclid有点吓到。。
@严酷的魔王: 是不是就是算法导论里那个贼难看的选择算法?
跟圣经风牛马不相及。
那本书叫《Proofs from The Book》,中文版书名叫《数学天书中的证明》。
把“The Book”翻译成“圣经”实在不太合适……
16楼的大哥,注意The Book中的The第一个字母是大写的….
我觉得第五名比快排和union find set精巧多了, 很难想象竟然能在线性时间完成找中位数(或者k-th large). 而且快排要达到最坏 O(nlogn) 也要依赖这个.
#17,这个是书的题目,书名一般除了介词以外,其余的词都要大写开头。这个还是不做证据为好。至于the book是不是指圣经我不清楚。
嗯,我错了。the是全部大写了。。wiki是这样说的,
the book is dedicated to the mathematician paul erdos, who often refers to “the book” in wich god keeps the most elegant proof of each mathematical theorem. During a lecture in 1985, erdos said, “you don’t have to believe in god, but you should believe in the book”.
所以the book翻译成圣经还是合理的。但准确来说并不是指圣经,而是说这本数学书已经被上帝审阅过了,所以每一个证明都非常简洁优美。(经过上帝之手的the book像吃了兴奋剂一样,变成大写了,THE Book。哈哈)
玩弄于“骨掌”之间
很无语啊,这就是北大中文系的语文水平吗?
抑或是google 翻译?
BFPRT 算法那个magic的5是几位大大怎么商量出来的,呵呵。
http://www.360doc.com/content/10/0929/04/65724_57201644.shtml
呵呵,我觉得tarjan参与的很多算法都很精妙,除了这里的第五名还有他的离线lca算法,期望时间复杂度线性的mst算法, fibonacci堆和伸展树,还有对并查集的时间复杂度分析等等
算法圣经不就是算法导论吗。。。
@darkraven 是的……顺序统计学……orz
@mincomp
异常同意! lca, fib heap is soooo intricate
我觉得DLX也很漂亮~
說實話,看到聖經兩個字我小小不爽了一下
無非就是一本外國的
包含相當多自相矛盾說教的
包含屠殺嬰兒,對其他種族文化充滿偏見內容的
宗教的
所謂“經典”書籍而已
我从图书馆借了这本”Proofs from THE BOOK”, 好难看懂…
支持LS对“圣”经的看法
那个“线性选择”的方法博主以前不是说“见过最不实用,只有理论价值”的方法吗?
to 31
你这句话的本身就是偏见,而且根本没看懂,只是挑出几个地方就张口开喷而已
to 34,
protestants 和catholics 他们基督徒自己也闹得不可开交呢,
catholics说弥撒时的面包放在嘴里就变成jesus的肉,protestants说那是胡扯;catholics支持有教皇,protestants认为有jesus就够了。。。
他们那帮欧洲人以前总为这点小事闹得不停,欧洲的讽刺家,例如Jonathan Swift,都批判欧洲人的。。。而且基督教义很歧视女性,大学的历史课给过无数例子,教授是美国人,人家都能理性的看待宗教的过失,
到底是谁没看懂就开始给基督教辩护?
还不如翻译成“神来之笔”
欧几里得威武
第五名就是快排里用的那种划分方法吗?
“最近”有人提出素数判别算法,不过公众知名度较少。
哲理很奇特的,我很支持!
我也觉得并查集真的是非常神奇的结构……实现极简,效率极高。
但是一直是感性上的认识,没有做数学的分析。
只会134。。
没看明白,哲理性很特别
@31
只关注内容上的矛盾和阴暗点跟那些原教旨的基督徒有什么区别..
辗转相除法也能入围我也是醉了
http://blog.csdn.net/v_july_v/article/details/6127953
I am really thankful to the holder of this website who has shared this fantastic article at at this place.
Nonetheless, you will have to have an annual income off at least $35,
000 to qualify.
Also viseit my webpage: website
Welcome bonuzes are unique presents that casinos have to encourage new
players to join their solutions.
my blog; gorih.blog2learn.com
You will then repay the loan in equal installments until the balance is paid off.
my blog post; 부동산 대출
These days yyou ccan use Bitcoin and other crypto assets as payment for a casino, play with them as
coins, and conveert jackpots back into crypto.
Also visit my web-site; webpage
I set up British Racecourses with the need to suare my passion for racing
with other like-minded men and women.
Look into my web blog http://www.spamarchiv.com
You do not have to come into tthe office to support busy
folks with theeir smaller sized tasks anymore.
my ppage … web site
Betting exchanges gradually make their way to the top
in terms of popularity, and the bookies beneath prove
it.
my website https://separesupere.com.br
They accept cryptocurrency (BTC, ETH and LTE),
credit/debit cards, Flexepin, Neosurf and Tether.
Havve a llok at my wweb page :: yrmll.wikipowell.com
Can I show my graceful appreciation and tell you
exactly how to do really good stuff and if you want to with no joke truthfully see Let me tell you a brief about how to get
connected to girls easily and quick I am always here for yall you know
that right?
You’re so awesome! I don’t suppose I have read anything
like that before. So nice to discover somebody with genuine
thoughts on this subject. Really.. thank you for starting this up.
This web site is something that is required on the web,
someone with some originality! https://www.sheffieldstateuniversity.com/