网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月31日漏签0天
反相吧 关注:11,870贴子:1,814,288
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 43回复贴,共2页
  • ,跳到 页  
<<返回反相吧
>0< 加载中...

小梦 在 民科吧 发了一个 用 四则运算 开平方 的 帖

  • 只看楼主
  • 收藏

  • 回复
  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小梦 在 民科吧 发了一个 帖 《民科编程大赛:用四则运算开平方》 https://tieba.baidu.com/p/6809881927 ,
标题 还是 红颜色 的 …… 哦 ……
早在 古代, 我们的 先人 根据 杨辉三角, 就已经 发明了 开任意次方 的 方法 。 So ?
@贴吧用户_5V6aAGy , 你们 的 插值法 、插花法 、二分法 、二叉树法 、树叶法, 效率 比不上 先人 的 方法 吧 ?
你在 《民科编程大赛:用四则运算开平方》 https://tieba.baidu.com/p/6809881927 的 19 楼 说 : “小数后15位,这已经到极限了。” ,

如果 用 先人 的 方法 的 话, 小数点 后 几百位 也是 分分钟 啊 。
@绮梦璇😾 (绮梦璇) @夸kiss♀♀ (青莲剑歌) @陈彼方º (陈彼方)


  • 贴吧用户_5V6aAGy
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
浮点数精度多少啊?你编程编糊涂了?


2025-08-31 20:16:23
广告
不感兴趣
开通SVIP免广告
  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 2 楼 @贴吧用户_5V6aAGy ,
数据 的 长度 不是 重点, 我想说的是, 如果 不利用 和平方 公式 的 话, 你们 的 那些 什么 插值法 二分法 等等 的 所谓 “数值计算” “数值分析” 方法 的 性能 都 存在问题 。
如果要 对 n 开平方, 当 n 的 位数 很多 时 , 你们 的 时间复杂度 会 很大 。


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
80 年代 的 计算器 已经有了 开平方 的 功能, 那是 用 硬件电路 实现 的 。 只能说, 80 年代 的 水平 真的 高 啊 !
我们现在 用 Power Shell 、Python 玩 这些 ……
我们可以 玩 个 升级版 的, 设计一个 算法, 用 硬件电路 实现 这个 算法, 硬件电路 的 部分 只要 设计 逻辑电路 就可以, 就是说, 画出 逻辑电路 的 设计图 。
小梦, 如何 ?
@绮梦璇😾 (绮梦璇) @夸kiss♀♀ (青莲剑歌) @陈彼方º (陈彼方) @贴吧用户_5V6aAGy


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 贴吧用户_5V6aAGy
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
算它无限位,牛B吹上了,实际没动作,被打脸了吧!


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 7 楼 @贴吧用户_5V6aAGy ,
先用 byte 数组 实现一个 无限位数 的 浮点类型, 这个 浮点类型 只要求 有 加 操作, 主要 是 实现 进位 。
不要求 有 其它 操作, 比如 减 、乘 、除 等 。
这样 , 这个 浮点类型 还是 容易 实现 的 。
然后, 再用 先人 的 开方法 。


  • 别问是劫是缘
  • 如雷贯耳
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实以前有人用普通计算器的加减乘除就可以手动开平方


2025-08-31 20:10:23
广告
不感兴趣
开通SVIP免广告
  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 9 楼 @别问是劫是缘 ,
我将 根据 杨辉三角 开任意次方 的 方法 称为 杨辉三角 开方法 。
我想了一下 杨辉三角 开方法 的 步骤, 还是有一点 繁琐 的 。 以 开平方 来说, 在 迭代开方 的 过程中 , 除了有 余量, 还有一个 累积量 。
这个 累积量 会 增加 一些 步骤, 也就是 会 增加 一些 时间复杂度 。
但不管怎么说, 杨辉三角 开方法 是 一个 正统 的 方法 。 它 的 好处 是 它 是 一个 “级数” 。
虽然 累积量 会 增加 一些 时间复杂度, 但是, 总的来说, 当 开方结果 的 位数 很大 时, 它 的 效率 仍然 优于 一般 的 数值分析 方法 。
累积量 是 一个 级数, 开方结果 也是 一个 级数, 开方结果 级数 里 包含了 累积量 级数 。
在 开高次方 时, 杨辉三角 开方法 的 累积量 有 多个, 比如 开 n 次方, 则 有 n - 1 个 累积量, 从 n - 1 次方 到 1 次方, 每个 次方 有一个 累积量 。
此时, 累积量 的 计算步骤 (公式) 会 膨胀 变得 复杂, 累积量 的 数值 也会 膨胀 急剧 增大, 这会让 程序 变得 复杂, 也会 增加 时间复杂度, 但是, 理论上, 仍然 可以用 杨辉三角 开方法 写出 无限位数 开任意次方 的 程序 。
累积量 也是 余项系数 。


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 10 楼 @别问是劫是缘 ,
比如 开三次方, a ³ 可以写成
a ³ = ( a1 + b ) ³
= a1 ³ + 3 a1 ² b + 3 a1 b ² + b ³ ,
a1 已知, b 未知 。
这里 产生了 一个 b 的 一次项 3 a1 ² b , 一个 b 的 二次项 3 a1 b ² ,
开 n 次方 会 产生 n 个 余项, 最后一个 n 次方 的 余项 的 系数 永远 是 1, 不用管 。 需要 累积 系数 的 余项 是 前面 的 n - 1 个 。
开三次方 会 产生 3 - 1 = 2 个 需要 累积 系数 的 余项, 这里 是 第一次 迭代, 3 a1 ² b 、3 a1 b ² 就是 第一次 迭代 时 产生 的 这 2 个 余项 。
令 b = b1 + c , 则,
a1 ³ + 3 a1 ² b + 3 a1 b ² + b ³
= a1 ³ + 3 a1 ² ( b1 + c ) + 3 a1 ( b1 + c ) ² + ( b1 + c ) ³
= a1 ³ + 3 a1 ² ( b1 + c ) + 3 a1 ( b1 ² + 2 b1 c + c ² ) + b1 ³ + 3 b1 ² c + 3 b1 c ² + c ³
= a1 ³ + 3 a1 ² b1 + 3 a1 ² c + 3 a1 b1 ² + 3 a1 * 2 b1 c + 3 a1 c ² + b1 ³ + 3 b1 ² c + 3 b1 c ² + c ³
可以看到,
3 a1 ² ( b1 + c ) 中 产生了 c 的 一次项 3 a1 ² c ,
3 a1 ( b1 + c ) ² 中 也 产生了 c 的 一次项 3 a1 * 2 b1 c ,
( b1 + c ) ³ 中 也 产生了 c 的 一次项 3 b1 ² c ,
这 3 个 一次项 可以 合并为 一个, 这个项 就是 本次 迭代 产生 的 一次余项 。
同理,
3 a1 ( b1 + c ) ² 中 也 产生了 c 的 二次项 3 a1 c ² ,
( b1 + c ) ³ 中 也 产生了 c 的 二次项 3 b1 c ² ,
这 2 个 二次项 可以 合并为 一个, 这个项 就是 本次 迭代 产生 的 二次余项 。
接下来 的 开方过程 是 令 c = c1 + d , 重复 上述过程 。
所以, n - 1 个 累积量, 也就是 余项系数, 可以用 一个 长度 为 n - 1 的 数组 保存, 但 每一个 余项系数 都 是 由 上述 的 迭代过程 计算产生, 这个 迭代计算 过程 比较 繁琐, 如果 能将 这个 迭代过程 归纳为 公式, 大概 是 一个 数列 的 通项公式 。
如果 不能 把 余项系数 的 计算过程 归纳 为 通项公式, 那么, 每 迭代一次, 余项系数 的 公式 就会 ”膨胀“ 一点, 当然, 这只是一个 形象 的 比喻 。
另一方面, 从上面的 计算过程 可以看出, 余项系数 是 相乘 一个 倍数 之后 再 相加, 得到 新的 余项系数 。 这可以看作是 成倍增长, 也差不多是 几何级数 。 这是 数值 上 的 ”膨胀“ 。
余项系数 膨胀 的 速度 和 开方 的 次方 有关, 次方 越大, 余项系数 膨胀 的 越快 。
另外, 次方 越大, 余项 越多, 一个 余项 需要 合并 的 项 也 越多 。


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小梦 在 《民科编程大赛:用四则运算开平方》 https://tieba.baidu.com/p/6809881927 的 20 楼 说 这是 “用泰勒级数进行逼近运算” :

这是 泰勒级数 ? 这不像是 泰勒级数, 这像是 一个 有 二分性质 的 迭代逼近 算法 。
这个 算法 是, 设 b 为 被开方数, 任取一个 正数 a, 令 c = b - a ² / ( 2 a ) , 令 a = a + c , 重复若干次 这个过程, a 就 很接近 b 的 平方根 了 。
这个 算法 适合 在 计算器 上 使用, 简单, 容易 由 程序 或者 逻辑电路 实现 。
@绮梦璇😾 (绮梦璇) @贴吧用户_5V6aAGy


  • 贴吧用户_5V6aAGy
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
废话那么多,等到花儿都谢了,还没做出来,真的让人着急。下面看看,我对2开方700位,刚好一屏。


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 12 楼 @绮梦璇😾 (绮梦璇)
一阶泰勒展开式 ? 就是 泰勒级数 的 第一项 吧 ? ( b - a ² ) / ( 2 a ) 这个式子 看起来 像 泰勒级数 第一项 , 但 这只是 “形似”, 实际上 和 本题 没有关系 。
第二, 你 利用 ( b - a ² ) / ( 2 a ) 循环迭代, 这不是 泰勒级数, 可以叫做 “小梦级数”, 你的 滑稽 表情 说明了 这一点 。
第三, 你能 证明 这个 迭代 的 极限 是 根号 b 吗 ?


  • K歌之王
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 13 楼 @贴吧用户_5V6aAGy ,
Congratulations ! But, Talk is great , believe me ...
设 a 为 中间结果, 也是 最终结果, 你的 这个算法 避免了 每次迭代 都要 计算 a ² 吗 ?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 43回复贴,共2页
  • ,跳到 页  
<<返回反相吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示