【发布时间】:2011-10-15 12:08:33
【问题描述】:
我正在尝试编写代码,但我卡住的地方是存储一个大数字
10^100 。这个数字很大
任何建议
【问题讨论】:
-
如果你打算自己做这个,看看@这个帖子stackoverflow.com/questions/269268/…如果没有,GMP是一个不错的选择......
我正在尝试编写代码,但我卡住的地方是存储一个大数字
10^100 。这个数字很大
任何建议
【问题讨论】:
使用 任意精度 库。我想到的一个非常流行的方法是GMP。它是一个 C 库,但它也有一个很好的 C++ 接口。它针对性能进行了优化,并且由于它被广泛使用,它可能非常强大。
【讨论】:
重新定义您的单位。很少有单一种类的数量变化如此之大。任意精度库不是一个坏主意...但是如果可以牺牲精度来换取速度,您可以使用浮点。
【讨论】:
您需要一个多精度算术库。
最受欢迎的可能是 GNU MP - http://gmplib.org/
【讨论】:
在 C++ 中,您可以使用许多可用的 Big Integer Libraries 中的任何一个
【讨论】:
您需要整数精度吗?如果是这样,GMP,如果不是,float 或 double 就可以了。
【讨论】:
这么大的数字 (10^100) —— 假设 ^ 你的意思是“权力”—— 不适合任何整数类型。你可以使用浮点类型(这里最好是double)和pow(),但你仍然会失去精度。如果您确实需要 100 位或更高精度的整数,请获取第 3 方 BigInt 实现之一并使用它。如果您不需要 100 位精度,请使用 double,它是语言的一部分。
【讨论】: