gpt4 book ai didi

C++程序计算大阶乘的商

转载 作者:可可西里 更新时间:2023-11-01 16:26:04 28 4
gpt4 key购买 nike

如何编写 C++ 程序来计算大阶乘。

例如,如果我想计算 (100!)/(99!),我们知道答案是 100,但如果我分别计算分子和分母的阶乘,两个数字都会非常大。

最佳答案

扩展德克的回答(我认为哪个是正确的):

#include "math.h"
#include "stdio.h"
int main(){
printf("%lf\n", (100.0/99.0) * exp(lgamma(100)-lgamma(99)) );
}

尝试一下,它确实可以满足您的需求,即使您不熟悉它看起来有点疯狂。使用 bigint 库将非常低效。获取 Gamma 对数的 exp 非常快。这立即运行。

需要乘以 100/99 的原因是 gamma 等于 n-1!不!所以是的,您可以改为执行 exp(lgamma(101)-lgamma(100)) 。此外,gamma 的定义不仅仅是整数。

关于C++程序计算大阶乘的商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731459/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com