社区
C语言
帖子详情
100分紧急求助~开方的高精度算法
xunyuetian
2005-06-17 09:46:03
要求精确到1000位以上的算法~
我是菜鸟~谢谢大家了
...全文
321
6
打赏
收藏
100分紧急求助~开方的高精度算法
要求精确到1000位以上的算法~ 我是菜鸟~谢谢大家了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xunyuetian
2005-06-23
打赏
举报
回复
晕~那个cryptlib如何使用呀~我下载了~编译好慢~而且不会用~
ChenJF206
2005-06-17
打赏
举报
回复
至于[0.0……0abc]的形式,可以转为[a.bc]*10n(n是幂)的形式就可以用上面的方式处理了,不过取有效数字稍有差异;另外负数的情况需要去负号再算,最后在首位前追加负号就OK了
ChenJF206
2005-06-17
打赏
举报
回复
1.用字符序列表示数a0...an,因为没有1000位的数据类型;
2.准备好字符序列数的基本运算函数,加、减、乘;
3.确定小数点位置,之后小数点不在参与运算;
4.j=0;
if 整数部分为奇数,取首一位a0来试平方根,即x0*x0<a0,x0为满足条件的最大根,i=0,
bi=a0-x0*x0;
else 取首两位试根[a0 a1],方法同前,i=1,bi=[a0 a1]-x0*x0;
j++;
5.每次往后取两位数字得[bi a(i+1) a(i+2)],若不足则补0,试根
20*[x0...x(j-1)]*xj+xj*xj<[bi a(i+1) a(i+2)],xj为满足条件的最大根,i+=2,j++;
6.重复5,直到获得足够的精度,或者[bi a(i+1) a(i+2)]为0为止;
7.根据之前确定的小数点位置插入小数点,完成。
xunyuetian
2005-06-17
打赏
举报
回复
实在太感谢了~
不过我是新手C++都还没有学,汗ing~
能否粗略讲一下算法,再推荐一些书籍
万分感谢~
DiabloWalkOnTheEarth
2005-06-17
打赏
举报
回复
sqrt(2) :
14142135623730950488016887242096980785696718753769480731766797379907324784621070
38850387534327641572735013846230912297024924836055850737212644121497099935831413
22266592750559275579995050115278206057147010955997160597027453459686201472851741
86408891986095523292304843087143214508397626036279952514079896872533965463318088
29640620615258352395054745750287759961729835575220337531857011354374603408498847
16038689997069900481503054402779031645424782306849293691862158057846311159666871
30130156185689872372352885092648612494977154218334204285686060146824720771435854
87415565706967765372022648544701585880162075847492265722600208558446652145839889
39443709265918003113882464681570826301005948587040031864803421948972782906410450
72636881313739855256117322040245091227700226941127573627280495738108967504018369
86836845072579936472906076299694138047565482372899718032680247442062926912485905
21810044598421505911202494413417285314781058036033710773091828693147101711116839
16581726889419758716582152128229518488472.
DiabloWalkOnTheEarth
2005-06-17
打赏
举报
回复
无聊地一个:
#include <iostream>
#include <cryptlib/integer.h>
#include <sstream>
using namespace std;
using namespace CryptoPP;
#define PREC 1000
int main( int argc , char* argv[] )
{
if( argc != 2 )
{
cout << "usage foobar <number>" << endl;
exit( 1 );
}
istringstream iss( argv[1] );
Integer nn , mm = 1 , mm2; iss >> nn;
for( int i = 0; i < PREC; ++i ) mm *= 10; mm2 = mm * mm; nn *= mm2;
cout << nn.SquareRoot() << endl;
}
基于牛顿迭代法的
高精度
快速
开方
算法
基于牛顿迭代法的
高精度
快速
开方
算法
用于DSP
高精度
算法
(包含正数的加减乘除和负数的加减乘除)
高精度
运算
高精度
加法
高精度
减法
高精度
乘法(一个多精度乘一个整数)
高精度
乘法2(一个多精度乘以一个多精度)
高精度
整除(一个多精度整除一个整数)
高精度
整除(一个多精度整除一个多精度)
高精度
取余(一个多精度取余一个整数)
高精度
乘方
高精度
开方
c++(NOIP)
高精度
加法源代码
c++(NOIP)
高精度
加法源代码
高精度
算法
(High Accuracy Algorithm)是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为
高精度
数,
高精度
算法
是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,
开方
等运算。对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,
FPGA\Verilog实现
开方
、平方、取余等数学
算法
FPGA\Verilog实现
开方
、平方、取余等数学
算法
,已经在硬件中实际验证过,计算没有问题,验证硬件是黑金的AX530
gaojingdu.rar_precision divide
高精度
算法
,属于处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为
高精度
数,
高精度
算法
是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,
开方
等运算。对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称谓是
高精度
数。
高精度
算法
就是能处理
高精度
数各种运算的
算法
。
C语言
69,390
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章