ShuXueZhenMiHu 发表于 2020-9-27 09:51:57

用VBA计算100000!

为什么我用VBA写的计算阶乘的程序很慢?计算100000!需要大约400秒,这正常吗,对于VB类程序?

mathematica 发表于 2020-9-27 11:38:29

比我牛逼多了,我只会用软件

.·.·. 发表于 2020-9-27 22:29:03

能贴一下程序吗?

风云剑 发表于 2020-10-1 20:33:05

现在Basic很少用了,我这有个十几年前的,可以参考

ShuXueZhenMiHu 发表于 2020-10-2 07:41:57


计算100000阶乘有错误,计算10000阶乘需要10秒。跟我编的计算器的性能差不多。

northwolves 发表于 2020-10-2 22:42:46

大数阶乘的计算(六)

十六年前我也曾写过VB系列的大数阶乘计算,供参考。

当时CSDN算法版已经在讨论如何1秒钟计算一亿或10亿的阶乘了

northwolves 发表于 2020-10-2 22:51:18

楼主可以研究一下郭老师16年前的算法 ,当时的配置HugeCalc计算100000!的阶乘需要0.07秒

高精度快速阶乘算法

ShuXueZhenMiHu 发表于 2020-10-3 07:36:51

本帖最后由 ShuXueZhenMiHu 于 2020-10-3 07:37 编辑


用Excel中的VBA做的。没有采用特殊的算法,就是硬乘。这已经是我VB编程能力的极限了。末尾的零们没有参与运算。

northwolves 发表于 2020-10-3 11:37:54

预估位数
long型数组存储
可以每8位一组
分解因数优化运算,尽可能多的平方运算
预存一些小数字的阶乘结果

dlpg070 发表于 2020-10-3 11:54:54

ShuXueZhenMiHu 发表于 2020-10-3 07:36
用Excel中的VBA做的。没有采用特殊的算法,就是硬乘。这已经是我VB编程能力的极限了。末尾的零们没有参与 ...

参考一下 mathematica的结果
{10!,      1.92435*10^-6 秒 }
{100!,   6.09377*10^-6 秒 }
{1000!,    8.98029*10^-6 秒 }
{10000!,   0.000389039   秒 }
{100000!,0.0101275   秒 }
{1000000!, 0.204683      秒 }
{10000000!,3.89173       秒 }
页: [1]
查看完整版本: 用VBA计算100000!