数学
小高斯与老师的故事中,为什么说老师数学功底完爆小高斯一条街?据说高斯上小学的时候,老师一次上课为了偷懒,对同学们说:”谁能告诉我1+1/2+1/3+...+1/100000化成最简分数分母末尾有多少个零我就让你们出去玩.”之后老师拿了本书正坐下准备看,年轻的小高斯马上举起手说:“老师,我知道了!” 老师不相信,于是问他.高斯很自豪的说:“七个!” 老师大惊失色,拿出准备好的答案查看发现果然是七个,他震惊的问小高斯:“我算了一晚上的题目,” 高斯说:“五的七次方不是78125么,而五的八次方就超过十万了啊!

2019-04-15

小高斯与老师的故事中,为什么说老师数学功底完爆小高斯一条街?
据说高斯上小学的时候,老师一次上课为了偷懒,对同学们说:”谁能告诉我1+1/2+1/3+...+1/100000化成最简分数分母末尾有多少个零我就让你们出去玩.”之后老师拿了本书正坐下准备看,年轻的小高斯马上举起手说:“老师,我知道了!” 老师不相信,于是问他.高斯很自豪的说:“七个!” 老师大惊失色,拿出准备好的答案查看发现果然是七个,他震惊的问小高斯:“我算了一晚上的题目,” 高斯说:“五的七次方不是78125么,而五的八次方就超过十万了啊!” 老师恍然大悟,觉得小高斯是个可造之材,好好的夸奖了他一番.老师一晚上算的答案(具体结果数字)太长了,不贴了…… 这个故事应该是编的,但是为什么说这个故事里老师数学功底就完爆小高斯一条街了,故事中小高斯的解法是什么意思,
优质解答
因为(a,b,c) 最小公倍数和((a,b),c)一样.多个数的最小公倍数计算可以通过计算前面两个数的最小公倍数,然后计算结果和后面一个数最小公倍数.而计算机比较快的算法求最小公倍数方法是:用辗转相除法求出两个数的最大公约数,让后除两个数的乘积,就是这就是两个数的最小公倍数.用这个思路,用python写了个程序求1,2,3,.100000的最小公倍数,程序跑了一分钟,答案有一个屏幕那么长.如果老师真能手工算出来,那也算逆天了.7个零原因也很简单,因为末尾出现零,只有2和5相乘.而2和5都是质数.1,2,3,.100000的最小公倍数=2^a * 3^b * 5^c . 所有质因数的幂次相乘.而a 和c必须满足,2^a附上代码def get_lcm(num1, num2):gcd = get_gcd(num1,num2)return num1*num2/gcddef get_gcd(num1,num2):if num1tmp = num2num2 = num1num1 = tmpmod = num1%num2if mod == 0:return num2else:return get_gcd(num2, mod)ret = 2;for i in xrange(3,100000):ret = get_lcm(ret, i)print ret 因为(a,b,c) 最小公倍数和((a,b),c)一样.多个数的最小公倍数计算可以通过计算前面两个数的最小公倍数,然后计算结果和后面一个数最小公倍数.而计算机比较快的算法求最小公倍数方法是:用辗转相除法求出两个数的最大公约数,让后除两个数的乘积,就是这就是两个数的最小公倍数.用这个思路,用python写了个程序求1,2,3,.100000的最小公倍数,程序跑了一分钟,答案有一个屏幕那么长.如果老师真能手工算出来,那也算逆天了.7个零原因也很简单,因为末尾出现零,只有2和5相乘.而2和5都是质数.1,2,3,.100000的最小公倍数=2^a * 3^b * 5^c . 所有质因数的幂次相乘.而a 和c必须满足,2^a附上代码def get_lcm(num1, num2):gcd = get_gcd(num1,num2)return num1*num2/gcddef get_gcd(num1,num2):if num1tmp = num2num2 = num1num1 = tmpmod = num1%num2if mod == 0:return num2else:return get_gcd(num2, mod)ret = 2;for i in xrange(3,100000):ret = get_lcm(ret, i)print ret
相关问答