纸张对折的计算
2023-06-28陈新龙
陈新龙
一張纸可以对折多少次呢?是否可以无限对折下去?相信很多同学可能都会有这样的疑惑,其实早在2011 年,美国得克萨斯州圣马克中学的师生们将一张近4 公里长的厕纸对折了13次,为完成实验,他们把场地定在了麻省理工大学200多米长的走廊里,经过四个多小时对折13 次后,厕纸达到了8192 层。
纸张是有厚度的,在折叠一定次数后,纸的厚度会超过宽度,这时纸张就无法继续折叠了。每次对半折叠使得纸的厚度加倍,所以厚度为t 的一张纸折叠n 次的厚度是2nt。与此同时,每折叠两次都会使宽度减半,因此,n 次折叠后,宽度从原来的w减少到(1/2)^(n/2)w。当纸的总厚度等于它的宽度时,就不能再折叠。实际生活中,一张A4 纸在对折6 次以后就难以继续对折了。
假设有一张无限大且可以无限折叠的纸,通过数学计算来分析这张纸对折以后的厚度变化。纸张厚度为0.1 毫米,对折一次以后厚度0.2 毫米,对折两次0.4 毫米。由于纸张厚度较小,要对折15 次才能突破3 米。但是随着对折次数的增加,厚度增加的速度也变得越来越快,对折20 次厚度超过100 米。到27 次时超过13000 米,轻松超越了珠穆朗玛峰的高度。达到37 次时达到13742 千米,这就超过了地球的直径。一张纸经过不断的对折,就能够突破人类已知宇宙的边界,这就是指数爆炸的魔力。
下面通过Scratch 来模拟纸张对折的数据,看看需要对折多少次可以超过地月的距离38 万千米。
为了能够更加直观地查看统计,创建三个列表,分别是“对折的次数”“纸张的厚度”“对折后的高度”。每对折一次,对折次数加1,纸张的厚度翻倍(2^n)。假设纸张的高度为0.1毫米=0.0001米,那么对折的高度也就是纸张的厚度乘0.1毫米。第一次对折,高度为0.0002,第二次对折,高度为0.0004,第三次对折,高度为0.0008,在对折15 次后,纸张的高度可以达到3 米以上了,如果可以对折42 次,其高度近似等于43 万千米,就可以到达月球了(如图1)。
设置三个变量用于存储对折次数、纸张厚度,以及对折后的高度,并赋予初始值,当程序开始运行后,首先是删除三个列表中的所有数据,其次询问用户想达到的高度(单位是米),然后程序进入重复循环的过程,直到对折后的高度超出了用户输入的高度结束循环。在循环过程中,会依次向三个列表中逐行添加数据,对折次数逐步递增(1,2,3,4,5……),纸张厚度是成倍数递增(2,4,8,16,32,2^n)。
Scratch 中不能直接表示2^n,要借用e^ 和in 转换一下(如图2)。
大家可以回忆一下棋盘麦子、汉诺塔等,在算法上有哪些相似的地方。