陳新龍
一張紙可以對折多少次呢?是否可以無限對折下去?相信很多同學(xué)可能都會有這樣的疑惑,其實早在2011 年,美國得克薩斯州圣馬克中學(xué)的師生們將一張近4 公里長的廁紙對折了13次,為完成實驗,他們把場地定在了麻省理工大學(xué)200多米長的走廊里,經(jīng)過四個多小時對折13 次后,廁紙達(dá)到了8192 層。
紙張是有厚度的,在折疊一定次數(shù)后,紙的厚度會超過寬度,這時紙張就無法繼續(xù)折疊了。每次對半折疊使得紙的厚度加倍,所以厚度為t 的一張紙折疊n 次的厚度是2nt。與此同時,每折疊兩次都會使寬度減半,因此,n 次折疊后,寬度從原來的w減少到(1/2)^(n/2)w。當(dāng)紙的總厚度等于它的寬度時,就不能再折疊。實際生活中,一張A4 紙在對折6 次以后就難以繼續(xù)對折了。
假設(shè)有一張無限大且可以無限折疊的紙,通過數(shù)學(xué)計算來分析這張紙對折以后的厚度變化。紙張厚度為0.1 毫米,對折一次以后厚度0.2 毫米,對折兩次0.4 毫米。由于紙張厚度較小,要對折15 次才能突破3 米。但是隨著對折次數(shù)的增加,厚度增加的速度也變得越來越快,對折20 次厚度超過100 米。到27 次時超過13000 米,輕松超越了珠穆朗瑪峰的高度。達(dá)到37 次時達(dá)到13742 千米,這就超過了地球的直徑。一張紙經(jīng)過不斷的對折,就能夠突破人類已知宇宙的邊界,這就是指數(shù)爆炸的魔力。
下面通過Scratch 來模擬紙張對折的數(shù)據(jù),看看需要對折多少次可以超過地月的距離38 萬千米。
為了能夠更加直觀地查看統(tǒng)計,創(chuàng)建三個列表,分別是“對折的次數(shù)”“紙張的厚度”“對折后的高度”。每對折一次,對折次數(shù)加1,紙張的厚度翻倍(2^n)。假設(shè)紙張的高度為0.1毫米=0.0001米,那么對折的高度也就是紙張的厚度乘0.1毫米。第一次對折,高度為0.0002,第二次對折,高度為0.0004,第三次對折,高度為0.0008,在對折15 次后,紙張的高度可以達(dá)到3 米以上了,如果可以對折42 次,其高度近似等于43 萬千米,就可以到達(dá)月球了(如圖1)。
設(shè)置三個變量用于存儲對折次數(shù)、紙張厚度,以及對折后的高度,并賦予初始值,當(dāng)程序開始運(yùn)行后,首先是刪除三個列表中的所有數(shù)據(jù),其次詢問用戶想達(dá)到的高度(單位是米),然后程序進(jìn)入重復(fù)循環(huán)的過程,直到對折后的高度超出了用戶輸入的高度結(jié)束循環(huán)。在循環(huán)過程中,會依次向三個列表中逐行添加數(shù)據(jù),對折次數(shù)逐步遞增(1,2,3,4,5……),紙張厚度是成倍數(shù)遞增(2,4,8,16,32,2^n)。
Scratch 中不能直接表示2^n,要借用e^ 和in 轉(zhuǎn)換一下(如圖2)。
大家可以回憶一下棋盤麥子、漢諾塔等,在算法上有哪些相似的地方。