找回密码
 欢迎注册
楼主: mathe

[讨论] 阶乘和开平方

[复制链接]
发表于 2021-1-6 15:59:30 | 显示全部楼层
有点需要明确,就是平方根什么时候取整操作似乎可以影响最后结果吧
比如假设sqrt(x, m)表示m次平方根,
int(x)表示取整, isqrt(x, m)表示m次整数平方根
会不会
int(sqrt(x, m)) != isqrt(x, m)

点评

这个可以放心,不会发生。  发表于 2021-1-6 16:10
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2021-1-6 20:09:21 | 显示全部楼层
假设存在整数u,m使得
$u^{2^m}\le x \lt (u+1)^{2^m}$,
于是很显然可以递归得出 $u^{2^{m-h}}\le "isqrt"(x,h)\lt (u+1)^{2^{m-h}}$。
所以最终得到$u\le "isqrt"(x,m)\lt u+1$,所以$"isqrt"(x,m)=u="int"("sqrt"(x,m))$

当然如果计算精度不够,双方可能会出现区别。
比如假设小数点后只有两位计算精度
那么$"sqrt"(251,3) = 251^{1/8} = 1.995...$,被计算为$2.00$
而$\sqrt{251}=15.84,\sqrt{15.84}=3.98, \sqrt{3.98}=1.99$.
所以如果在一台只有两位十进制精度的机器上,可以计算得出$"isqrt"(251,3)=2$,但是$"int"("sqrt"(251,3))=1$

点评

是的,例子我写反了  发表于 2021-1-7 17:01
我的意思isqrt是每次都取整数的平方根  发表于 2021-1-7 16:00
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-24 19:48 , Processed in 0.072331 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表