公子相 发表于 2024-4-10 21:05:57

用VBA计算100000!

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

asomiajht 发表于 2024-4-10 21:06:54

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

inabilezami 发表于 2024-4-10 21:07:05

能贴一下程序吗?

opukidefugowu 发表于 2024-4-10 21:08:03

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

anaboewako 发表于 2024-4-10 21:08:09

https://bbs.emath.ac.cn/data/attachment/forum/202010/02/073952lbh6gvo6klegxxxg.jpg
计算100000阶乘有错误,计算10000阶乘需要10秒。跟我编的计算器的性能差不多。

uzmedafacof 发表于 2024-4-10 21:08:50

大数阶乘的计算(六)

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

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

litong 发表于 2024-4-10 21:09:32

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

高精度快速阶乘算法

euogifubize 发表于 2024-4-10 21:10:09

https://bbs.emath.ac.cn/data/attachment/forum/202010/03/073322qpt5yon8ytnzttjp.jpg
用Excel中的VBA做的。没有采用特殊的算法,就是硬乘。这已经是我VB编程能力的极限了。末尾的零们没有参与运算。

Kristslots 发表于 2024-4-10 21:10:32

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

AzertVab 发表于 2024-4-10 21:10:43

参考一下 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!