精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-11
最后修改:2011-04-11
http://www.iteye.com/topic/996006 今天一看,基本代码都是"废材" 一个自称数学系的代码,一看效率基本是穷举... 我的思路是 删选+6N 100内的数何必初到100的任何素数呢,到7内素数就行,同理1000000的数,除到1000内的素数就行了, 步长居然是2,慢了3倍。 。。。。 我只是一个2000+ 一个月的,小小计算机维护人员。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-11
总体来说,应聘人员如果不是之前的工作和数学比较紧密,那么效率可能都不是很高。
因为日常开发中,国内Java职位大多都是管理系统类的。这些方面用到这些算法的可能性很少,如果不是业余有兴趣,或者没忘掉学校学习的数学知识。那么最多是能答出来,效率就不要太苛求了。说真的,现在学校教数学感觉就是为做题,和实际联系太少。出计算题会做。换个方式描述成现实问题有人就不知道拿哪些数学知识套了。 除非该职位明确要求要很高的应用数学能力,不然更多的考察点还是在编码习惯、代码结构上。只要代码组织的好,算法可以很容易替换。 |
|
返回顶楼 | |
发表时间:2011-04-11
从逻辑上说穷举没有问题
你从数学上来优化 确实体现了 观察力和数学基础 但从程序角度来说,穷举没有逻辑错误。 标题从 "通过一道简单面试题看国内java程序员基本水平" 改成 "通过一道简单面试题看国内java程序员基本数学水平" 的话我就不回帖了。 |
|
返回顶楼 | |
发表时间:2011-04-11
高中数学从来没及格过,目前还在IT行业里继续活着的人,飘过~
|
|
返回顶楼 | |
发表时间:2011-04-11
我只是想说,中国是个复杂的国家,从程序员的水平就可以看出一个国家的状况。。。。
高手很多很多,不然也不会ACM世界冠军都被中国拿来。。。但是不懂基础知识的“车床”工人也是很多很多。。。。就像中国富人很多很多,穷人也是更多更多。。。。 |
|
返回顶楼 | |
发表时间:2011-04-11
cttnbcj 写道 一道简单的Java面试题
http://www.iteye.com/topic/996006 今天一看,基本代码都是"废材" 一个自称数学系的代码,一看效率基本是穷举... 我的思路是 删选+6N 100内的数何必初到100的任何素数呢,到7内素数就行,同理1000000的数,除到1000内的素数就行了, 步长居然是2,慢了3倍。 。。。。 我只是一个2000+ 一个月的,小小计算机维护人员。 Iterator<Integer> it=list.iterator(); while(it.hasNext()){ int x=it.next(); if(x>(n/x)) break; if(n%x==0) return false; } 这是翻开 找到 以前刚学java的时候 的代码 很早以前 就知道 if(x>(n/x))break; 这个东西了,是不是说那时候我的人就牛B的不得了了, 没撒特别的而已,只是大家没有认真想而已。 这就看出水平来了, 你的水平可真高 |
|
返回顶楼 | |
发表时间:2011-04-11
神之小丑 写道 cttnbcj 写道 一道简单的Java面试题
http://www.iteye.com/topic/996006 今天一看,基本代码都是"废材" 一个自称数学系的代码,一看效率基本是穷举... 我的思路是 删选+6N 100内的数何必初到100的任何素数呢,到7内素数就行,同理1000000的数,除到1000内的素数就行了, 步长居然是2,慢了3倍。 。。。。 我只是一个2000+ 一个月的,小小计算机维护人员。 Iterator<Integer> it=list.iterator(); while(it.hasNext()){ int x=it.next(); if(x>(n/x)) break; if(n%x==0) return false; } 这是翻开 找到 以前刚学java的时候 的代码 很早以前 就知道 if(x>(n/x))break; 这个东西了,是不是说那时候我的人就牛B的不得了了, 没撒特别的而已,只是大家没有认真想而已。 这就看出水平来了, 你的水平可真高 你毕业那会遇到那个贴的楼主就好了,他会给你开10k以上的。 |
|
返回顶楼 | |
发表时间:2011-04-11
WEB应用程序员和算法程序员是不同的职业
最重要是,淡定区分程序员和中国程序员 |
|
返回顶楼 | |
发表时间:2011-04-11
那么多垃圾系统能堆起来,真是不足为奇. 所以说咱这行,叫民工行业.
建筑工地能砌砖的民工,社会价值远不是垃圾程序员能比得上的. |
|
返回顶楼 | |
发表时间:2011-04-11
最后修改:2011-04-11
给定数N,求N以内的素数,最高效的简单方法是查表法。
不计2,从3开始,每个奇数i只要除以3到小于等于floor(sqrt(i))的素数即可, 量很小,平均每个奇数测试sqrt(i)/ln(i)次取模。sqrt有很高效的计算方法-0x5f3759df by Carmack。 复杂的可以用各种素数测试方法,虽然误差很小一般几十、百万分之一,但是一般不能保证100%的测试正确 |
|
返回顶楼 | |