文档详情

高精度算法 高精度算法报告.doc

发布:2017-01-08约1.4万字共40页下载文档
文本预览下载声明
高精度算法 高精度算法报告 导读:就爱阅读网友为您分享以下“高精度算法报告”的资讯,希望对您有所帮助,感谢您对92的支持! 高精度算法研究 秦雪洋,廖福轩,吴韩,顾仁杰,楼嘉豪 (陕西师范大学 计算机科学学院,陕西 西安 710062) 摘 要: 文章中对“高精度四则运算”进行了分析,对四则运算进行了算法分析。主要采用了C++语言,运用了循环递归的方式实现。 关键词: 高精度;递归;算法; 1 引言 2 算法设计 高精度问题的描述:在一般的科学计算中,会经常算到 小数点后几百位或者更多,当然也可能是几千亿几百亿的大 数字。一般这类数字我们统称为高精度数,高精度算法是用计 算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘, 开方等运算。对于非常庞大的数字无法在计算机中正常存储, 于是,将这个数字拆开,拆成一位一位的,或者是四位四位的 存储到一个数组中, 用一个数组去表示一个数字,这样这个数 字就被称为是高精度数。 (1)运算顺序:两个数靠右对齐;从低位向高位运算;先计 算低位再计算高位; (2)运算规则:同一位的两个数相加再加上从低位来的进位, (3)成为该位的和;这个和去掉向高位的进位就成为该位的 值;如上例:8+2=10,向前一位进1,本位的值是0;可 借助MOD、DIV运算完成这一步; 最后一位的进位:如果完成两个数的相加后,进位位值不 为0,则应添加一位; (4)如果两个加数位数不一样多,则按位数多的一个进行计算; 竖式计算:138+12 1 3 8 + 1 2 —————————— 1 4 10 1 5 0 每位对齐,按位加,每位若超过10的需要进位 (5)当数据较小的时候,可以按照加法进行计算,但是当数据 的数值大到一定长度的时候就无法进行计算了, 用数组表示数 的优点:每一位都是数的形式,可以直接加减;运算时非常方便 用数组表示数的缺点:数组不能直接输入;输入时每两位数之间 必须有分隔符,不符合数值的输入习惯;用字符串表示数的优点: 能直接输入输出,输入时,每两位数之间不必分隔符,符合数值的 输入习惯;用字符串表示数的缺点:字符串中的每一位是一个字符,不能直接进行运算,必须先将它转化为数值再进行运算;运算时非 常不方便;因此,综合以上所述,对上面两种数据结构取长补短: 用字符串读入数据,用数组存储数据 。
显示全部
相似文档