公钥安全机制与宫爆鸡丁的故事

你有没有在网上买过东西?没?什么?哦,怕不安全。 现在信息科技日新月异,貌似一转眼的功夫,交电话费、考试报名、逛图书馆、订购午饭都搬上了互联网。方不方便且不说,单说足不出户能叫到午饭,这要在以前那可都是科幻小说啊。只不过科幻小说里,主人公可能只须对机器人吩咐说,“来份宫爆鸡丁盖饭,外加一碗紫菜鸡蛋汤”,一切就搞定了——哪像现在这样,装五花八门的杀毒软件,还得随时小心钓鱼网站的陷阱。那现在的互联网真的如此危险么?先看看大宝的这次订餐经历,您再下结论也不迟。 话说大宝一日宅在家中,百无聊赖地度过了阴雨连绵的上午,忽然感觉腹中空虚,四肢无力——他明白了,原来自己是饿了。闲话少说,大宝奔到电脑前,准备给自己淘一顿午饭。 飘过了几家附近的餐馆之后,大宝决定在“啃的鸡”点一份宫爆鸡丁盖饭套餐。点完菜,服务员小姐礼貌地将大宝带到了收银台——这“啃的鸡”是先付帐、再上菜的。 (传说中的宫爆鸡丁。来源: princeroy, cc-by-2.0)…

Continue Reading

20世纪的十大算法

在看周国标的《数值计算》这本书,发现第一章导论里面有一个20世纪十大算法的介绍,所以感兴趣就做了一个小小的摘录和总结,其中的思想我想还是很值得反复推敲的,从下面的这些算法的作者可以得出一个结论:一个优秀的算法设计者必然拥有扎实的数学基础。先拿蒙特卡洛方法开个头,后面会陆续补充上对其他算法详细解释。归纳起来,这些算法既有对过去算法效率的提高,也有对科学计算精度的改进,各有千秋。虽然已经是几十年前的产物了,但是现代科学的各个领域却无不渗透这些算法影子,足见其魅力之大。 本世纪初,美国物理学会(American Institute of Physics)和IEEE计算机社团 (IEEE Computer Society)的一本联合刊物《科学与工程中的计算》发表了由田纳西大学的Jack Dongarra和橡树岭国家实验室的Francis Sullivan 联名撰写的“二十世纪十大算法”一文,该文“试图整理出在20世纪对科学和工程领域的发…

Continue Reading

找数组中给定下标区间内的第K小(大)元素

今晚看了下MIT的算法导论公开课,发现一道题很有意思,涉及到多种算法的实现,就记下来以后再回顾。 给定数组,给定区间,求第K小(大)小的数如何处理?。     1、排序,快速排序。我们知道,快速排序平均所费时间为n*logn,从小到大排序这n个数,然后再遍历序列中后k个元素输出,即可,总的时间复杂度为O(n*logn+k)=O(n*logn)。     2、排序,选择排序。用选择或交换排序,即遍历n个数,先把最先遍历到得k个数存入大小为k的数组之中,对这k个数,利用选择或交换排序,找到k个数中的最小数kmax(kmax设为k个元素的数组中最小元素),用时O(k)(你应该知道,插入或选择排序查找操作需要O(k)的时间),后再继续遍历后n-k个数,x与kmax比较:如果x<kmax,则x代替kmax,并再次重新找出k个元素的数组中最大元素kmax‘(多谢jiyeyuran 提醒修正);如果x<kmax,则不更新数组。这样…

Continue Reading

被神化的编程语言与编程世界

今天看到了篇文章(菌菌:链接已死),不尽让我感慨良多。现在的编程语言,以致编程世界,被诸君有意无意的神化了。 我只会C++,虽然我写过一些脚本语言和本机语言的编译器,但基本上我会的就只有C++,用的也只有C++。我并不觉得我很乏味,因为会一门编程语言就够了,无论他是什么。我不会python,但是你要我用python的时候,我可能在十几分钟内看看语法,查看API并写出相关的程序;我也不会php,但要写网页,我还是看看语法,查看API就写出来,十几分钟的事。如果我觉得有爱,我还会实现这些语言的编译器,这对我是一件很容易的事情(毕竟写了好多个了)。 可见,编程语言只是工具罢了,纯粹的工具;学会一门语言并不像你想的那么难;看看他的简明教程和语法、再看看他的例子,我相信你足可以学会这门语言。C++虽然是一门庞大的语言,但绝不是现在人们口中谈虎色变的东西,他是很靠谱的编程语言,无论是性能,库、还是IDE都是齐全的。 也许你会问现在不都是说用…

Continue Reading

2013年校园招聘:IT公司笔试题精选

9月11日, 京东: 谈谈你对面向对象编程的认识 8月20日,金山面试,题目如下: 数据库1中存放着a类数据,数据库2中存放着以天为单位划分的表30张(比如table_20110909,table_20110910,table_20110911),总共是一个月的数据。表1中的a类数据中有一个字段userid来唯一判别用户身份,表2中的30张表(每张表结构相同)也有一个字段userid来唯一识别用户身份。如何判定a类数据库的多少用户在数据库2中出现过? 来源:http://topic.csdn.net/u/20120820/23/C6B16CCF-EE15-47C0-9B15-77497291F2B9.html。 百度实习笔试题(2012.5.6) 1、一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。评点:同去年9月份的一道题,见此文第3…

Continue Reading