数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: Ysu2008

寻求一个快速精确开平方算法(非迭代近似值算法)

[复制链接]
发表于 2020-11-6 16:04 | 显示全部楼层
Ysu2008 发表于 2020-11-6 15:58
解决大整数计算就可以了。

先生这个大整数需有个界定吧,比如一万以上算大整数还是一亿以上算大整数
回复 支持 反对

使用道具 举报

发表于 2020-11-6 16:10 | 显示全部楼层
比如一亿开平方,精度超过一万以上,软件拒绝计算。这已经不是算法的问题啦,需要那种功能单一,专业性极强的软件,后方电脑硬件自然要跟的上
回复 支持 反对

使用道具 举报

发表于 2020-11-8 10:40 | 显示全部楼层
用 Julia 写了一段代码(连分数迭代),仅用了 2.3 秒,就算到小数点后10000位。

@time setprecision(40000) do                        
    a1=big(1); b1=big(1)
    a2=big(3); b2=big(2)
    i=big(1);
    while i < big(100000)
        c1=a2;c2=b2;
        a2=2*a2+a1; b2=2*b2+b1;
        a1=c1;b1=c2;
        i=i+1
    end
    println(i, " ", a2/b2)
end                                         
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-9 16:37 | 显示全部楼层
永远 发表于 2020-11-6 16:04
先生这个大整数需有个界定吧,比如一万以上算大整数还是一亿以上算大整数

好像没有严格的规定。大于 64 位二进制数就算比较大了。
回复 支持 反对

使用道具 举报

发表于 2020-11-9 20:34 | 显示全部楼层
Ysu2008 发表于 2020-11-9 16:37
好像没有严格的规定。大于 64 位二进制数就算比较大了。

不同编程语言有差异吧,python如果超过了机器的整数长度,会自动提升为大整数,julia 必须声明为 big 类型。

GCC 提供了大整数库(GMP)或多精度浮点计算库(MPFR),新语言实现高精度计算估计没难度。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-10 11:13 | 显示全部楼层
uk702 发表于 2020-11-9 20:34
不同编程语言有差异吧,python如果超过了机器的整数长度,会自动提升为大整数,julia 必须声明为 big 类 ...

Java 也是,只能使用 Big 类。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-25 15:14 , Processed in 0.075195 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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