
算法
文章平均质量分 56
TangHuanan
这个作者很懒,什么都没留下…
展开
-
简易对数求法
设对数...,因为是递增函数,假设,如果,则,反之则.由此可得的简易算法如下(计算机程序设计艺术。P19):首先将x的小数点左移或右移,使得;这样就确定了n.现在置,对于k>=1,置: 如果 , 则, ; 如果 , 则 ;从而我们得到了。由此可以求出的值。代码如下:#include#include#inclu原创 2015-02-05 06:40:49 · 864 阅读 · 0 评论 -
韩信点兵问题
韩信点兵是一个有趣的猜数游戏。如果你随便拿一把蚕豆(数目约在100粒左右),先3粒3粒地数,直到不满3粒时,把余数记下来;第二次再5粒5粒地数,最后把余数记下来;第三次是7粒一数,把余数记下来。然后根据每次的余数,就可以知道你原来拿了多少粒蚕豆了。不信的话,你还可以试验一下。例如,假如3粒一数余1粒,5粒一数余2粒,7粒一数余2粒,那么,原有蚕豆有多少粒呢? 这类题目看起来是很难计算的原创 2015-02-05 22:39:14 · 1091 阅读 · 0 评论 -
最大公约数与最小公倍数
欧几里德算法:欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 a mod d=0, b mod a = 0,而r = a - kb,因此r mod d = (a-kb)mo原创 2015-02-05 22:45:35 · 525 阅读 · 0 评论