2008-12-24 569 views
14

作为圣诞礼物,我用Java写了一个小程序来计算素数。我的意图是让它整夜,计算下一个素数并将其写入.txt文件。在早上,我会杀死该程序,并将.txt文件送给我的朋友过圣诞节。.txt文件大小是否有上限?

有什么我应该担心的吗?请记住,这是真正的初学者Ziggy你正在谈论,而不是一些聪明的错误检查ASM人。

编辑更具体地说,因为我将在整夜计数素数时离开这个程序,所以我会遇到某种与内存有关的错误吗?就像堆栈砸碎堆或狗和猫一起睡觉?

编辑更具体地说,是否有一行代码,我可以把文件的大小为4GB时停止打印行?为了安全起见?

编辑:成功:晚上离开后,我得到的素数不超过13 KB,最高的是22947217,就好像数以万计的素数。成功!

+10

明年你可以给你的朋友一盒斐波那契数字; o) – wcm 2008-12-24 17:29:06

+0

heh。我的某个地方还有一张CD,其中包含我第一台素数发生器的输出。对于每个小于MAXINT的奇数,包含真/假的未压缩的256兆比特流。花了一天才完成。 :-) – 2008-12-24 18:10:59

+0

这就是这样一个华丽的圣诞礼物! – Tbb 2015-05-14 09:03:34

回答

5

很可能您正在使用速度较慢的算法。随着素数越来越大,您的程序将需要越来越长的时间来计算单个素数。如果让它在一夜之间运行,那么文本文件在早上不会很大。如果它超过了几个megs,我会留下深刻的印象。

0

只限于您将文本文件存储在磁盘上的位置的大小。

而且,如果你不是马上写出它,你的记忆+虚拟记忆。

+0

串行Downvoter:您正在通过StackOverflow进行跟踪。您的所有降价会在某个时候失效。 – 2012-05-02 02:05:05

+0

关于系列downvoter,它似乎并不是这样.. – 2012-08-29 10:27:50

2

从技术上讲,除了文件系统放置在你身上外没有限制。但是,记事本对打开淫秽的大文件非常胡思乱想。

18

我会建议发送一个短信给你计算的每个素数。你的朋友会比一堆纸更好。另外他可以更经常地更新。

你可以免费发送here:

只需要通过验证码即可。

+1

@作业乙:起初...... – 2008-12-24 16:58:49

1

如果内存服务,FAT32有一个4gig文件限制大小。

2

您可能会考虑跟踪您写入每个文件的字节数,并在一定数量的字节后切换到新的字节数。你也可以为你的文件提供一个查看器,这样你的朋友可以更容易地看到他的礼物。 :)

1

Ziggy--

我喜欢这样的: “没有一些聪明的错误检查ASM的家伙。”你在描述我们所有人!

有足够的磁盘空间和写信!如前所述,确保用于打开文件的编辑器可以打开非常大的文件。

节日快乐,真正的初学者Ziggy。

7

有大量的限制,但他们都不是固有为.txt文件:

  • Windows 9x中的记事本将不会打开一个文件> 64KB。
  • Windows NT/2k/etc的记事本没有限制,但往往会阻塞和锁定多兆字节的文件。您还需要记住大多数文本编辑器都很笨,并尝试将整个文件读入RAM。
  • 许多软件限于2GB或4GB文件,具体取决于它们是使用带符号还是无符号整数 - 正如已经提到FAT32的人所犯的一样。
0

如何保存一些CPU周期,并下载预先计算的list of primes?还是更“重要的思想”? :)

0

那么为每个素数创建一个文件,然后使用文件名来显示数字呢?

0

不知何故,当你的程序在一夜之间运行时,文件大小将成为一个问题,因为随着数字变大,找到质数将需要更长的时间。只要确保清理干净,或者可能会吃掉所有的RAM。

回答你的问题:理论上,文件系统限制文件大小。然而,当加载大文件(> 100 MB)时,许多文本编辑器崩溃(vim不会),因为它们试图将它放在一个缓冲区中。总结一下,考虑将你的文件分割成最薄弱的链接(文本编辑器)可以处理的块。

相关问题