gpt4 book ai didi

c++ - 在非常大的算术系列中添加数字的最快方法?

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:44 25 4
gpt4 key购买 nike

在算术级数中添加数字时,我试图尽可能地减少开销。我说的是一个非常大的集合,比如从 1 到 2^128。有什么快速的方法可以做到这一点吗?如果是这样,如果不实际使用等差数列求和公式会怎样?仅供引用,从1到2^128的和为:

57896044618658097711785492504343953926464851149359812787997104700240680714240

最佳答案

唯一快速的方法是使用公式:

n * (n+1) / 2

任何其他方法(天真地添加)都会花费太长时间! (即使你在 super 计算机上有一百万年,你也计算不完)。

但是对于这么大的整数,您不能使用普通整数。您将需要使用一个大整数对象。所以得到一个大整数库,例如。 Google search , https://mattmccutchen.net/bigint/ .

注意:一个 256 位整数可能能够保存该范围内的结果,但它完全依赖于平台和编译器,至于 256 位整数是否随时可用以及它们的使用方式。

关于c++ - 在非常大的算术系列中添加数字的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255603/

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