计算机中最大的数字

Yeh*_*tan 34 numbers limit representation

刚刚被我5岁的孩子问到:电脑里最大的数字是多少?

我们不是在谈论特定数据类型的最大数量,而是计算机可以表示的最大数量.

不允许使用无限.

更新我的孩子总是想要打印,所以让我们说计算机需要打印这个号码和孩子知道这是一个很大的数字.当然,在实践中我们不会打印,因为树木不够.

Tom*_*ett 42

这个问题实际上是一个非常有趣的问题,数学家已经投入了相当多的思考.您可以在本文中阅读它,这是一个引人入胜且易于阅读的内容.

简而言之,一个名叫Tibor Rado的人通过定义一个名为Busy Beaver数字的序列,开始寻找一些非常大但仍然定义明确的数字.在给定n个符号的输入的情况下,他将BB(n)定义为图灵机在停止之前可以采取的最大步数.请注意,此序列本质上是不可计算的,因此数字本身虽然定义明确,但很难确定.以下是前几个:

BB(1) = 1
BB(2) = 6
BB(3) = 21
BB(4) = 107
Run Code Online (Sandbox Code Playgroud)

......等待......

BB(5) >= 8,690,333,381,690,951
Run Code Online (Sandbox Code Playgroud)

没有人确定BB(5)究竟有多大,但它是有限的.并且没有人知道BB(6)及以上有多大.但至少这些数字在数学上是完全明确的,不像"人类曾经想过的最大数字,加上一个." ;)

那怎么样:

计算机可以表示的最大数字是最小的指令,一个小到足以容纳其可用内存的程序可以在暂停之前执行.

平方.

不,等,立方.不,提升到自己的力量!

该死!

  • 这是一篇很棒的文章链接.谢谢! (4认同)

Ale*_* C. 32

比特不是数字.,作为一个程序员,给他们你想要的,可能是数字的含义.

现在,我认为这1代表了"人类加上一个人想到的最大数字".

  • Jon Skeet会这么说. (6认同)
  • "人类加上一个人想到的最大数字"并没有明确定义......而且计算机可能已经想到了比人类更大的数字;) (3认同)
  • 我喜欢这个答案+1 (2认同)
  • 可能不是问题的精神...... :) (2认同)
  • 当然,`1`是最大的数字 (2认同)

Jay*_*dee 21

呃这是一个五岁的孩子?

怎么样的事情:"我很想告诉你,但这个数字是如此之大,需要很长时间才能说出来,在我告诉你之前我已经死了".

  • 我想知道节食的比特,也许是"睡前",或者说会更好 (5认同)
  • +2如果可以的话.这是实际解决问题的第一个答案. (3认同)

Her*_*che 19

//  wait to see
for(;;)
{
    printf("9"); 
}
Run Code Online (Sandbox Code Playgroud)

  • 它会停止,而不是单独停止. (5认同)
  • 但它永远不会停止 (4认同)
  • 这是一个相对较小的数字.当计算机断电时,打印9将结束.那是地球坍缩到太阳之前的某个时候,或宇宙崩溃,或者它解体.得到的999 ... 9是数字方式,小于BB(100). (2认同)
  • @Adrian Fritsch,你是对的,无论如何相同的笑话仍然工作添加printf("BB(");作为第一行...当然,最后一个,请关闭括号 (2认同)

Dar*_*mas 13

大致 2^AVAILABLE_MEMORY_IN_BITS

编辑:以上是实际存储数字并将所有媒体(RAM,HD,云等)视为内存.减去操作系统占用空间(以KB为单位)并不会"粗略"地降低准确性......

如果你想以一种有意义的方式"表示"一个数字,那么你可能想要使用CPU提供的内容:无符号32位整数(大约4 Gigs)或无符号64位整数,适用于你孩子接触过的大多数计算机.

与5岁儿童交谈的注意事项:通常,他们只是想要一个事实.给他一个非常大且非常准确的数字(很多数字),比如4'294'967'295.然后,一旦玻璃窗离开他的眼睛,试着看看解释计算机如何代表数字的距离.

编辑#2:我曾经读过这篇文章:谁可以命名更大的数字,它应该为你的孩子提供很多有趣的信息.显然他不是你正常的五岁孩子.所以这可能会让你开始关于数字和计算的冷静方向.

  • 减去操作系统需要的640K. (7认同)
  • *"显然他不是你正常的五岁孩子."* - 我不知道.5岁的孩子善于提出这样的深层问题.问题是,大多数5岁的孩子1)没有意识到问题有多深,2)没有知识能够理解答案,3)没有注意力甚至听回答. (5认同)
  • 实际上它是`(2 ^(AVAILABLE_MEMORY_IN_BITS + 1)) - 1` (2认同)

Wer*_*rCD 5

对生活的回答(以及这个孩子的问题):42