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)及以上有多大.但至少这些数字在数学上是完全明确的,不像"人类曾经想过的最大数字,加上一个." ;)
那怎么样:
计算机可以表示的最大数字是最小的指令,一个小到足以容纳其可用内存的程序可以在暂停之前执行.
平方.
不,等,立方.不,提升到自己的力量!
该死!
Ale*_* C. 32
比特不是数字.你,作为一个程序员,给他们你想要的,可能是数字的含义.
现在,我认为这1代表了"人类加上一个人想到的最大数字".
Jay*_*dee 21
呃这是一个五岁的孩子?
怎么样的事情:"我很想告诉你,但这个数字是如此之大,需要很长时间才能说出来,在我告诉你之前我已经死了".
Her*_*che 19
// wait to see
for(;;)
{
printf("9");
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*mas 13
大致 2^AVAILABLE_MEMORY_IN_BITS
编辑:以上是实际存储数字并将所有媒体(RAM,HD,云等)视为内存.减去操作系统占用空间(以KB为单位)并不会"粗略"地降低准确性......
如果你想以一种有意义的方式"表示"一个数字,那么你可能想要使用CPU提供的内容:无符号32位整数(大约4 Gigs)或无符号64位整数,适用于你孩子接触过的大多数计算机.
与5岁儿童交谈的注意事项:通常,他们只是想要一个事实.给他一个非常大且非常准确的数字(很多数字),比如4'294'967'295.然后,一旦玻璃窗离开他的眼睛,试着看看解释计算机如何代表数字的距离.
编辑#2:我曾经读过这篇文章:谁可以命名更大的数字,它应该为你的孩子提供很多有趣的信息.显然他不是你正常的五岁孩子.所以这可能会让你开始关于数字和计算的冷静方向.