最小化 关闭(或终止进程) 标题栏 关于 PowCalc 
(等价键盘操作:F1 | Shift+"?") 左对齐(等价键盘操作:Tab) 右对齐(等价键盘操作:Tab) 复制数据到剪贴板(等价键盘操作:Ctrl+C) 与剪贴板上数据比较(等价键盘操作:Ctrl+K) 查看结果(等价键盘操作:Ctrl+W) 关闭所有查看窗口(等价键盘操作:Ctrl+X) 数组排序及重复性判定(等价键盘操作:F8) 数组线性导入 …(等价键盘操作:F9) 等幂和次数:0~9999(=0时,求积) 等价键盘操作:[ Ctrl+ ][ Alt+ ] ←/→ (光标键) 数字千位分节符 显示值之位数(Max > 1,000,000,000) 数据显示窗口 阶数显示窗口 清空数组(等价键盘操作:Esc | Shift+Del) 等价键盘操作:Del 等价键盘操作:Bksp 清除存储区域中的数据。等价键盘操作:Ctrl+L 等价键盘操作:7 等价键盘操作:8 等价键盘操作:9 读取后台存储数据。等价键盘操作:Ctrl+R 等价键盘操作:4 等价键盘操作:5 等价键盘操作:6 存储当前显示数据。等价键盘操作:Ctrl+S 等价键盘操作:1 等价键盘操作:2 等价键盘操作:3 将显示数据加入存储数据中。
等价键盘操作:Ctrl+P | Ctrl+"+" 将显示数据乘进存储数据里。
等价键盘操作:Ctrl+M | Ctrl+"*" 等价键盘操作:0 平移数组使最小数为“0”。等价键盘操作:
  Alt+Bksp | Ctrl+"-" | Ctrl+Alt+"0" 等幂和计算(等价键盘操作:SpaceBar) 数组编辑窗口(冻结区) 数组编辑窗口(可编辑区)     可按 Home/End、PageUp/PageDown、↑/↓(光标键) 进行快速浏览;若同时按住 Ctrl 键,则可调整数据顺序。

    另:拖动滑块,会自动提示最上端可编辑数据序号及数值。 

注:本模块实现了“数据屏显位置保持”之特性。 新开一个 PowCalc (等价键盘操作:Ctrl+N) E-Mail:gxqcn@163.com 状态提示 日期 时间 始终在上?(等价键盘操作:Alt+T) 最小化 关闭 标题栏(显示调用的 HugeCalc 版本号) 切换:输出大小写及窗口Top属性 切换进制系统(内部变量将随即切换) 得到比输出数据更小的最邻近素数 对输出数据素性检测 得到比输出数据更大的最邻近素数 如果选择变量为“---”,则不输出具体结果;
但结果位数等相关信息仍会以tooltip方式显示出来 显示数据 若未注册,则严禁用于任何商业目的! 输出区 将下面输入的字串赋值给右边 将右边与左边的数互换 比较两边数值的大小 可输入任意文本,本软件会自动过滤
(直接支持“0x...”形式的十六进制赋值) 输入区 高精度加、减、乘、除(商、余)及与、或、异或位运算 高精度快速乘方 (绝对值)高精度开方;余数不为0时将余数显示到左边窗口 计算 n!、n!!、n#、素数阶乘 
 或 Fibonacci/Lucas 数列 最大公约数 计算对数(精确到整数位) 可转换成任意进制;当进制∈[2, 62] 时,用字符集[0-9A-Za-z]精确输出,否则用[xxx]精确输出 是否显示累计耗时 高精度加、减、乘、除(商、余)及与、或、异或位运算 [0, 4294967295] [1, 4294967295] [0, 4294967295] 计算 n!、n!!、n#、素数阶乘 
 或 Fibonacci/Lucas 数列 注意:当等于“0”时,代表“2^32”;
      当等于“1”时,无意义 注意:当等于“0”时,代表“2^32”;
      当等于“1”时,无意义 获取计算耗时(并同时切换显示格式) 开始或终止高精度计算 高精度计算控制区 图案仅供参考
打造世界一流的快速大数算法库

转下载页面

本专栏含有如下内容:

HugeCalc 是什么?

    HugeCalc 是一款高精度算法库(同时支持 MBCS + UNICODE 版),适合于大规模科学计算,尤其适用于数论、密码学等领域研究,其核心算法耗费作者十余年的心血。具有占用资源少、效率高、使用便捷、易二次开发、可移植性强、可扩展性好等特点。关键文件 HugeCalc.dll 虽然很小,却提供了公共函数接口 709 个(标准C++接口 473 个;标准C接口 236 个),且其计算速度完全可与大型专业数学工具软件媲美!

    现已提供了如下功能:


    为了与广大网友分享 HugeCalc 带来的便捷,该版公开了 HugeCalc.dll 的所有接口文件(同时支持 MBCS + UNICODE 版),大家可以更自由地进行高精度计算或自开发,而无须再依赖于 Mathematica 等大型软件。

    V5.x 首次采用了十进制/二进制“双进制内核系统”,且内部可高效相互转换,使输入/输出及内部计算均得以高效进行。

    V6.x 新增了各种标准导入接口,可方便各种编程语言进行二次开发,如 C++、C、VB、Delphi 等。

    V7.x 则实现了自动识别用户 CPU 类型,并自动调整算法及相关参数,以使效率最佳化;并实现了用 SSE2 指令集加速、多核并行处理等新技术,以充分发挥现在及未来 CPU 的性能。

    V8.x 则实现了全整型指令算法(无须任何浮点指令集支持),比之先前有浮点指令参与时可提速 30% 左右。

    HugeCalc 自网上公开发布以来,得到了广大网友的积极反馈。(当前最新版本为:HugeCalc V8.0.0.0;参见:测试报告
页 首


强大的 HugeCalc

    HugeCalc 是一款持续发展的软件,它具有如下特点:


    为了让广大网友体验 HugeCalc 的强大便捷,作者特意编写了一系列的 demo & test 程序,如下图所示:
         --- 图1
    本计算器仅为 HugeCalc 算法库的 Demo & Test,所以功能不全,界面也不算很理想;但已提供了最常用的一些功能,且非常强大(无论注册 HugeCalc 与否,本程序的运行都无任何限制;更多的介绍请参见帮助文档 HugeCalc.chm 中的相关页面)。

    本算法库自在自网上公开发布以来,由于其强大的功能,得到许多网友的积极反馈,也经常会有朋友询问是否可以通过 VB、Delphi 等编程语言来调用它。现在这个问题已经解决,如下图所示:
         --- 图2
    如果要在 0.1s 内计算出C200000_100000(从 200000 个不同元素中抽取 100000 个的组合数),而你最擅长的是 VB,能做到吗?看了上面的图示,答案是:能!在我的机器(AMD 3200+,2.01 GHz,1GB RAM,WinXP SP2)上其实仅用了 0.035865s 而已,这是用 VB 调用 HugeCalc 实现的,我已经将源代码打包进了压缩包,以供网友参考。
    这个用 VB 编写的计算器还有个特别功能,可以快速计算大数的“模幂”,若指数为负数,将有模逆运算,这已在程序中用 ToolTip 形式进行了提示。

页 首


快速计算阶乘非零尾数

    这纯粹是一个数论小游戏:阶乘的十进制结果中末尾都会有很多个数字 0 (5以下的除外),去掉这些连续的 0 之后最后若干位称为“阶乘非零尾数”。给出一个数 N(它可能非常非常大,大到上千万位),请迅速计算出它的阶乘 N! 的最后的指定位的非零尾数。我编写了一个小程序,界面如下:
         --- 图3
    曾有许多竞赛题是让选手编写程序快速计算阶乘的最后一位非零尾数,而本程序则可快速计算最后的 1~255 位非零尾数,功能很强大,速度亦是无与伦比,这些的背后则是算法库 HugeCalc 的强力支持!为了让广大网友体验快速计算的乐趣,无论注册 HugeCalc 与否,本程序的运行都无任何限制!
    关于本话题的深入探讨,可访问本站的擂台:计算阶乘的 18 位非零尾数

页 首


最直观的 RSA 算法教程(含源代码及程序)

    为什么说是“最直观的 RSA 算法教程(含源代码及程序)”呢?请看如下界面:
         --- 图4
    它将 RSA 的原理以数学公式的形式直接反映在界面上,所有的项都可由用户编辑,而在使用时,还会自动判定状态,自动给予提示。更重要的是,还提供了源代码,RSA 被精心设计成两个版本:标准C调用(rsa.h & rsa.c)及标准C++调用(rsa.hpp & rsa.cpp)。

    我虽然开发了 HugeCalc,并深信其在密码学领域大有作为,可是我本身之前对密码学却一无所知,于是拼命搜集资料自学。也许我的数论功底还可以,所以学 RSA 还比较轻松。但发现极少程序可以直观地反映其算法的流程,这才决定自己全新开发这款程序,并共享源代码(特别地,无论注册 HugeCalc 与否,RSATool.exe 的运行都无任何限制!)。

页 首


1s 内可破世界纪录的“自守数程序”

    “自守数”,通俗地讲,就是能出现在自己平方“尾巴”的数。加拿大两位数学工作者利用电子计算机, 算出了 500 位的自守数, 这是当今所公认的“世界纪录”。
         --- 图5
    这个程序的核心算法源于 HugeCalc,可以独立运行;在我的机器(AMD 3200+,2.01 GHz,1GB RAM,WinXP SP2)上 1s 钟可计算到 2,000,000 位!
    如果您对算法感兴趣,请浏览 求解b进制的n位自守数

页 首


可快速精确计算千万级阶乘的小程序

    精确计算阶乘,可以从侧面反映一个算法库的效率,至少是大数乘法方面的。
         --- 图6
    上面的截图是在我的机器(AMD Dual Core 4800+,2.51 GHz,2GB RAM,WinXP SP2)上截取的,看到么,那可是精确计算四千万的阶乘!其实,更大的也不再话下,比如上面曾提到的5千万的阶乘。(参见:测试报告

    如果您对算法感兴趣,请浏览 高精度快速阶乘算法

    因为我家有台“老爷机”配置非常烂,内存只有 64MB,每次新版本发布之前,我都要先在这台机器上测试一遍(以保证在用户低配置的机器上仍可运行顺畅),所以不得不非常吝啬地使用内存。HugeCalc 的开发理念中非常注重资源的有效利用,所以整个运行期间内存占用都很低。也许有人会说,现在内存便宜了,不必要太在意了,但我必需再提醒一句:在 32bits OS 下,用户的可用寻址空间是有限的(2GB左右),再多的内存也是惘然,超出寻址空间程序一样是会崩掉的!这是高精度计算最不情愿看到的现象。也许又有人会说,Vista 诞生了,寻址空间的瓶颈可以解决了,但我认为无论何时,合理而充分地发挥用户的资源,是开发者应具有的好品质。

页 首


方便快捷的素数生成器

    许多数论爱好者,对“素数”总是情有独衷。
         --- 图7
    这个程序有不少独到之处:

页 首


分数转小数快速计算器

         --- 图8
    这个程序调用了算法库 HugeCalc 中的几个数论函数,功能虽然单一,但转换速度极快(因采用了多线程控制,可随时终止运算)。

页 首


专业的等幂和计算器

    从下面截图显示的版本年号可看出,这是本人的早期作品。
         --- 图9
    它是用 VB 开发的,具有豪华的界面(甚至是度身定制自定义控件)、数以百项的快捷功能,可以从网页、Excel 表中智能提取数组,非常实用,被幻方协会推荐使用。
    这是我当初自学 VB 时完成的,但我的工作需要我用 C 语言,所以当时决定终止对其的进一步开发,转而用 C/C++ 开发大数高精度算法库,不想一发而不可收!可以说,“PowCalc”是“HugeCalc”的前身,它完全是我自创的算法,为后来的开发奠定了基础。虽为 VB 开发,但却并不逊色于普通 C 程序员开发的程序,当初在网站截图上不知天高地厚地加了句“PowCalc - (可能是当前最快的)全精度计算器。”,现在您可以当是个笑话一笑而过罢了!:)

    这个程序有许多独特功能,速度也非常快,我至今仍经常使用它,所以也特别将它打包进了 HugeCalc 中,免费共享给大家(如果因缺少运行库无法运行,请下载其完全安装版)。

页 首


美妙的幻方(世界纪录,首创)

    在我的业余爱好中,幻方也曾占有一席之地。
         --- 图10
    我用自创的算法打破了多项“世界纪录”,其中不少还属于“世界首创”。“幻方”虽然体现了极佳的“数学美”,但应用领域却始终有待进一步开拓,处境比较尴尬,所以一些级别较高的刊物对幻方类作品比较抵制(我曾帮一网友在上海交大学报上发表一篇论文,最后甚至需徐利治数学家的亲笔推荐信才得以发表)。我虽已系列整理了大量的文稿,并开发出了系列配套软件,但鉴于当前的形式,毅然决定从“幻方”研究中抽身出来,转投新的领域。促使我做这个决定的,还有一个原因:“幻方”太易引发版权之争。因为对一个幻方改头换面实在是小菜一碟,是个是非之地。上述幻方是我 2003-06-13 发布的一个特别“单行本”,它可以迅速构造出大量的“高级 729 阶 5 次雪花幻方”

    在压缩包中,还有一个“25 阶立体二次雪花幻方”,高维高次幻方,世界首创,请欣赏(更多的。。。

页 首



如果您有什么疑问或建议,敬请与我联系,使本专栏进一步完善,谢谢!

下载瞧瞧