
大数运算
liangbch
这个作者很懒,什么都没留下…
展开
-
化实数为分数
化实数为分数实数包含有理数和无理数,任何有理数都可以表示为p/q(p,q是整数,q!=0)的形式,如果指定一个分数的分母不超过某个值,对于一般的有理数或者无理数,是不可以用一个分数来准确地表示的。我们这里主要讨论,如何找出一对分数p1/q1和p2/q2,使得q1 和q2 小于给定的值n,而p1/q1和p2/q2尽可能接近一个给定的实数.。为了便于说明,我们用C++语言的格式给出问题的定义:原创 2008-01-24 21:47:00 · 5568 阅读 · 5 评论 -
也谈圆周率计算
关于圆周率的计算历史和算法原创 2017-12-05 20:49:36 · 11000 阅读 · 0 评论 -
AGM函数近似值的估计
AGM函数近似值的估计 AGM是 Arithmetic-Geometric Mean的缩写,意为算术几何平均数。其定义为,给定两个正实数a0和b0,我们定义一个迭代过程 ai+1=ai+bi2, bi+1=aibi−−−√ai+1=ai+bi2, bi+1=aibi a_{i+1}= \frac {a_i+b_i} {2}, ...原创 2017-08-12 02:08:10 · 2570 阅读 · 0 评论 -
整数平方根的计算(一)
摘要:本文主要讨论使用求级数和的方法来计算小整数的平方根,在内存空间允许的情况下,本算法可将整数的平方根精确到任意精度。本算法具有逻辑简单,且无需使用大数库等优点。另外,本算法也相对高效,在当前主流的计算机上,计算整数的平方根到到10万位有效数字并输出到文件,大约需要5秒左右的时间。本文不但给出算法描述,也给出完整的C语言代码,其代码在VC和GCC下编译通过。 为了描述其算法原理原创 2012-02-16 04:34:45 · 10899 阅读 · 1 评论 -
计算大数阶乘--Python版
本文给出使用Python语言写的大数阶乘计算器,由于Python支持大整数,故这个程序的代码非常简单。原创 2012-06-01 19:10:01 · 4487 阅读 · 0 评论 -
计算大数阶乘--Java版
本文给出Java语言版的计算大数阶乘的程序,本文使用动态数组的存储计算过程的中间结果和最终结果。每个short型数组元素表示4位10进制数。原创 2012-06-01 09:41:17 · 6502 阅读 · 1 评论 -
4行代码计算圆周率,e,2的平方根,log(2)
在 http://numbers.computation.free.fr/Constants 中看到几个特别的程序,仅仅3-4行代码,却可以将圆周率,e(自然对数的底),log(2), 2的平方根 计算到数千位。这里将他们贴出来,方便大家学习。转载 2008-11-05 23:43:00 · 4348 阅读 · 3 评论 -
自然数的物理化学性质
数学是自然科学的基础,物理学和化学的许多原理必须用数学来解释和描述。这里我们反其道而行之,我们用物理化学的概念来解释数的性质。原创 2009-06-17 09:50:00 · 2867 阅读 · 0 评论 -
阶乘之计算从入门到精通--汇编版
摘要:本文给出用8086汇编语言写的一个阶乘计算器系列程序,其特点是,生成的目标程序很小。5个版本的目标文件为89-161字节。这5个版本的程序可计算出1-17129之间任意一个数的阶乘。本文以目标程序最小化为主要目标,因此本文重点关注代码的空间优化技术,即如何写出尽可能小的程序。关键字: 汇编 阶乘 大数阶乘 优化 空间优化 DOS调用 com文件 PSP 本文给出一个用8086汇原创 2012-01-06 04:02:49 · 6514 阅读 · 1 评论 -
计算大数阶乘--basic版
代码见下:OPTION BASE 1DIM buff(16000) AS LONGPRINT "calc n!"INPUT "n="; nn%rad& = 10000arrLen% = 1buff(1) = 1FOR i% = 1 TO nn% STEP 1 cc& = 0 FOR j% = 1 TO arrLen% STEP 1原创 2012-05-30 17:11:26 · 1261 阅读 · 0 评论 -
计算大数阶乘--Linux Bash版
## 版本1,普通的实现,没有调用任何第三方程序## --------------------------------------------#!/bin/bashecho To calculate n!echo -n n=read nnrad=10000len=1buffs[1]=1for (( i=1; i <= nn; i++ )); do原创 2012-05-30 17:21:00 · 2864 阅读 · 0 评论 -
计算大数阶乘--Dos批处理版
去年这个时候,学习了一下Dos批处理编程。作为练习题,写了一个用Dos批处理计算大数阶乘的程序。Dos 批处理的实现如下:@echo offsetlocal enabledelayedexpansionecho To calculate n^^!set/p nn=n=?set/a "buff_1=1,rad=10000,len=1"for /l %%i原创 2012-05-30 17:09:04 · 1440 阅读 · 0 评论 -
计算大数阶乘--VB Script 版
和Basic版相比,这个版本有以下几处不同点这次采用的不是静态数组,而是动态数组,先定义一个数组“Dim buff()”,在运行过程中再根据需要扩展大小。计算结果没有直接输出,而是写到文件,因为当字符串太长时,MsgBox的会丢失部分内容难点:确定n!的位数是难点,ln(n!) 可用 斯特林逼近 来计算,ln(n!)= (n+0.5)ln(n)- n + 0.5*ln(2*pi)请原创 2012-05-30 17:18:10 · 1865 阅读 · 0 评论 -
计算大数阶乘--Pascal版
先给出代码:program fac;var i,j,n,len: integer; rad,c,r: longint; buff: array[1..16000] of integer; num: string[5];begin writeln('calculate n!'); write('n=?'); read(n);原创 2012-05-30 17:16:26 · 2254 阅读 · 0 评论 -
整数平方根的计算(二)
摘要: 本文给出了另一个计算整数平方根的程序,和整数平方根的计算(一)不同,他主要使用牛顿法来求平方根,大整数运算调用GMP整数运算库。全部的代码能够从http://download.youkuaiyun.com/download/liangbch/4070516 下载。 算法: 这个程序的主要算法是牛顿迭代法。他首先得到一个平方根的初始值,然后使用牛顿迭代法逐步求精,在计算过程原创 2012-03-09 13:38:30 · 2130 阅读 · 0 评论 -
重大消息-一种新的任意精度对数算法研制成功
重大消息,近日,由我自己独创的对数log(x)算法终于定型。其复杂度与当前公开发表的最好的算法AGM同,都是O(log(P)M(P)),p为精度,其中M(P)代表两个P位整数相乘所需要的基本运算的次数。但是我的算法有很小的常数因子,故速度更快。测试报告显示,这个算法的性能是非常令人振奋的,在100-10000位精度下,可比现在最快软件Mathematica快2.8到8倍。计算一个正数的对数精...原创 2018-01-04 11:31:01 · 420 阅读 · 0 评论