gpt4 book ai didi

c - 是否可以在 C 中创建一个包含 10^13 个元素的 float 组?

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

我正在用 C 编写一个程序来解决优化问题,为此我需要创建一个 float 类型的数组,其顺序为 1013 元素。在具有 20GB 内存的机器上这样做实际上可能吗?

最佳答案

C 中的 float 占用 4 个字节(假设 IEEE 浮点运算,这在当今非常接近通用)。这意味着 1013 元素天真地需要 4×1013 字节的空间。这相当多(40 TB,也就是桌面系统的相当多的磁盘,并且在 RAM 方面超出大多数人的承受能力)因此您需要找到另一种方法。

数据是否稀疏(即大部分为零)?如果是,您可以尝试使用哈希表或树来仅存储其他任何值;如果您的数据足够稀疏,那么您可以将所有内容都放入其中。另外请注意,处理 1013 元素将花费很长时间。即使您每秒可以处理十亿个项目(非常快,即使是现在),它仍然需要 104 秒(几个小时),我愿意打赌在任何重要的情况下您将无法获得接近该速度的任何东西。你能找到一些方法不仅使数据存储稀疏而且使处理稀疏,这样你就可以不理会大量的零吗?

当然,如果数据不稀疏,那你就完蛋了。在这种情况下,您可能需要找到一个更小、更易于处理的问题。

关于c - 是否可以在 C 中创建一个包含 10^13 个元素的 float 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11051346/

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