摘要:此文在网络上受到欢迎,被广泛转载而广为人知甚至奉为经典。转载于此,希望每个人都能学会提问的智慧。1. 引言 在黑客的世界里,你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度,本文将教你如何提问才更有可能得到满意的答复。 开源程序的应用已经很广,你通常可以从其他更有经验的用户而不是黑客那里得到解答。这是好事,他们一般对新手常有的毛病更容忍一点。然尔,使用我们推荐的方法,象对待黑客那样对待这些有经验的用户,通常能最有效地得到问题的解答。 第一件需要明白的事是黑客喜欢难题和激发思考的好问题。假如不是这样,我们也不会写本文了。如果你能提出一个有趣的问题让我们咀嚼玩味,我们会感激...
阅读全文
摘要:在开始动态规划的讨论之前,先考虑一下斐波那契数列。1、1、2、3、5、8、13、21·······如何求解第20个数。计算斐波那契数列的一个最基本的算法就是根据定义进行求解计算:于是,求解代码如下:public static long fib(int n){ if(n==1||n==2){ return 1; }else{ return fib(n-1)+fib(n-2); } }求解第20个数:1fib(5)2fib(4)+fib(3)3(fib(3)+fib(2))+(fib(2)+fib(1))4...
阅读全文
摘要:在我的第一篇博客中提到了一个很重要的公式:N=(2^n)*(3^n)*(5^n)*(7^n)*(11^n)*(13^n)*(17^n)*............任何自然数都可以用素数的n次方的乘积表示。在本文中将主要围绕如何去判断素数进行全面的分析与思考。素数,只能被1和它本身整除的数称之为素数。如何判断一个数n是素数。对于1<i<n/2,不停的判断n%i是否为0,如果不存在i使n%i==0,那么该数是素数,否则不是素数。 public static boolean isPrime(int n) { int m = n/2; for (int i = 2; i < m; i+
阅读全文
摘要:如何思索算法(一)今天在刷网页的时候发现一个求最小公倍数的问题,感觉颇有意思就拿来看,有意思的不是题目而是我在解决该问题时所做的探索。题目:求能被1~n所有数整除的最小正数(最小公倍数)。 一眼瞅去一点思路都没有,只想从1*2*3*4*.....*n的结果就一定能够除所有1到n。但是这个数不是最小的,因为存在因子冗余。比如说:能够被8整除的数一定可以被2整除,被9整除的数一定可以被3整除。下面来一步一步的思考如何解决该问题: 考虑1~10的情况:1、2、3、4、5、6、7、8、9、10。设置一个因子数组factor(10)。 首先,去除1,这一点毫无疑问,不解释。 其次,选出素数2、3...
阅读全文