0
A
回答
2
由于该名单将需要8.8 TB的内存,这里有一个平凡解,以防止被需要:
loop_limit = uint64(2^40);
ii = uint64(1);
chunksize = 1000;
fid = fopen('output.txt', 'w');
while ii < loop_limit
for jj = 1:chunksize
fprintf(fid, '%d\n', ii);
ii=ii+1;
if ii >= loop_limit
break; end
end
end
fclose(fid);
没有列表创建过的任何地方;内存开销仅限于少数使用的变量。
请注意,您提供的列表(1:2^40
)将超过Matlab的最大环路索引2147483647,这是双循环的原因。
还请注意,这个文件output.txt
将占用8.8TB,所以...最好先释放一些硬盘空间。
现在很明显,这绝对是令人惊恐的。你能提供关于“旧”程序如何查询文件的更多信息吗?因为我有强烈的预感,有一些bash/DOS批处理技巧,您可以使用它来模拟包含这些数字的文件,而无需真正需要该文件。
+0
“旧”程序是一个C++程序,重建隐马尔可夫模型以表示二进制变量组的活动。如果有40个变量,则有2^40个人口活动状态。确实,有限自动机只需要知道它是处理有限字母表,但我没有时间(直到我的论文后)真正深入到协作者的代码中。而且他不愿意独自一人。 – mac389
相关问题
- 1. 在Java中创建一个非常非常大的地图
- 2. 在oracle中为一个非常大的表创建表语句
- 3. 创建一个非常大的哈希数据库的提示
- 4. 当创建一个非常大的numpy数组时,MemoryError
- 5. C++ - 一个非常非常大的数字
- 6. 创建一个非常简单的单循环列表C#
- 7. 快速将一个非常大的数字字符串列表到ndarray
- 8. 的Java创建CSV数据对象并保存到列表
- 9. 构建一个非序列的数字列表(从很大的范围)
- 10. 如何在PHP中表示一个非常大的数字?
- 11. 非常大在一个非常大的B分数
- 12. 保存动态创建的DOM,并创建一个JSON
- 13. 创建一个新的System.Diagnostics.PerformanceCounter非常慢
- 14. playbook:创建一个新文件夹并保存一些数据
- 15. 创建一个唯一的字符串用于保存数据
- 16. 使用php创建并保存一个缩略图阵列
- 17. 在R中创建一个非常大的稀疏矩阵
- 18. 在Oracle中创建一个非常大的索引
- 19. 用非常大的文件创建一个dll
- 20. 如何使用matlab创建一个非常大的矩阵
- 21. 创建一个YouTube视频列表,并保存离线使用的链接
- 22. 在列表中创建一个列表,并将数据存入MYSQL
- 23. 从大小创建一个列表
- 24. 创建一个django表单对象并保存它
- 25. 如何创建非常大的矢量
- 26. 保存图表创建图像列表
- 27. 总结一个非常大的数字的位数
- 28. 存储一个非常大的字符串数组或字符串?
- 29. MYSQL - 拆分一个非常大的表 - 建议请
- 30. 从列使用ID列表创建名称列表保存到另一个
存储列表服务需要什么?对于大多数我所遇到的按需生成自然数子列表的大多数目的而言,比存储所有自然数(或其任何大部分)要优雅得多。认为代表自然数而不是存储的流的懒惰评估。 –
当然,使用发电机会更优雅。但是,我需要将整个列表写成与* sigh *兼容,我不允许重写旧程序。 – mac389