讀古今文學網 > 數學女孩 > 7.5 圖書室 >

7.5 圖書室

7.5.1 米爾嘉的解

第二天放學後,在圖書室,我旁邊坐著米爾嘉。

「雖然我一開始建立了推導公式,」米爾嘉快言快語地說起來,「可算到一半時我改變了方法。」

「啊?你是說你沒有解推導公式嗎?」我問道。

「嗯,我不解推導公式。因為我找到了很微妙的對應關係。」她答道。

我一打開筆記本,米爾嘉就立刻開始寫起來。

「比如說,當 n 為 4 的時候,我們可以以這個式子為例來考慮。

( ( 0 + 1 ) + ( 2 + ( 3 + 4 ) ) )

仔細看這個式子,即使像下面這樣去掉後半個括號,也能恢復原貌。

( ( 0 + 1 + ( 2 + ( 3 + 4

能使後半個括號復原完全是因為『加號連接著前後兩項』這一限定條件。」她說。

「原來如此。在第二項出來的地方插入後半個括號就可以了吧。」我考慮片刻後回答道。我算到 ((A + A) + (A + (A + A))) 這步就放棄了,原來還可以變得更簡便。

米爾嘉微微咧開嘴笑了笑。

「再進一步,其實連寫數字的必要都沒有,寫成這樣就可以了。

( ( + + ( + ( +

這樣也可以恢復原貌。在加號的左側添上數字就可以了,只是最後的 4 會添加在加號的右側。」

「原來如此。」

「也就是說,要求有幾種添加括號的方式,只要求出『前半個括號』和『加號』有幾種排列組合的可能就好了。就拿 n 為 4 的情況來說吧,問題就變成了求 4 個前半個括號和 4 個加號的排列組合的個數。比如說,用 * 來表 示這 8 個符號。

* * * * * * * *

然後,考慮將其中的哪 4 個 * 變成前半個括號。

( ( * * ( * ( *

接著,再將剩下的符號自動轉換成加號。

( ( + + ( + ( +

從這 8 個符號(分別有 4 個括號和加號)中選擇 4 個符號變成前半個括號,可以形成 這樣的組合情況。當然這是在 n 為 4 的前提下所得出的結論。以一般化的形式說來,從 2n 個符號(分別有 n 個括號和加號)中選擇 n 個符號變成前半個括號,可以形成 這樣的組合。這樣的組合可以用下圖來表示,這條彎曲的路線的最短路徑的數值和組合的個數是等價的。路線從左下角的 S 開始,一直到達 G 這個終點。用箭頭來表示路線的走向,也就是 ( ( + + ( + ( + 這個符號的排列。」米爾嘉說。

「所以呢,接下來是……」她接著說。

「等一下」,我打斷了還要繼續往下說的米爾嘉。

「米爾嘉,這樣解實在太奇怪了。因為這不是從 8 個符號中任意選擇 4 個。比如說,無論 4 個括號和加號如何排列,下面這種排列方式都是不可以的,不是嗎?

( ( + + + + ( (

畫出 ( ( + + + + ( ( 這樣的路徑一看你就明白了。在這個圖中,凡是經過 的路徑都不可以計算在內。」

「你還沒說完嗎?」被我中途打斷的米爾嘉氣鼓鼓地說。

◎  ◎  ◎

我確實是還沒說完。在排列括號和加號的過程中,有這樣一個限制條件:加號的個數絕對不可能超過括號的個數。

什麼時候會出現加號的個數超過括號的個數的情況呢?正如你所說的,是通過上圖中的圓圈 的時候。如果不通過圓圈 ,從 SG 的路線數 量和 Cn 是相等的。

如果不考慮這個限制條件,從 SG 的路線的個數就是

那麼,如果在從 SG 的過程中穿過一次圓圈 的話,情況會變成什麼樣呢?

假設第一個穿過的圓圈 的地方為 P,從 P 開始前進的方向都將發生反轉。將這幾個圓圈 用虛線連接後,你會發現它們形成一條斜線,可以將這條斜線考慮成一面鏡子。從 PG 的過程中,原本向右水平移動的話就轉變為向上移動,原本向上移動的話就變為向右水平移動。於是,我們得到了點 G' ,而不是點 G

G' 也就是 G 通過鏡子的反射得到的點。也就是說,( ( + + + + ( ( 這個組合形式就變成了 ( ( + + + ( + + 的形式。

這麼一想,通過圓圈 的所有情況的個數和從 SG' 的線路的個數一一對應。從縱橫共有 2n 根短線中選擇 n + 1 根橫線路徑,進行路線組合,也就是

這麼說來,以下式子就成立了。

Cn =(從 SG 的路徑數)-(從 SG' 的路徑數)

接下來就是計算了。快算快算,將下降階乘冪快速運轉起來吧。

通分後第二項有點難以理解呢。但思考一下下降階乘冪的意義就會自然明白,在這裡我來做一下補充說明。

分子是這樣變形的。將 (n) 這個「小尾巴」提取出來並展開。

接著,分母可以這樣變形。這次將 (n + 1) 這個「頭部」提取出來並展開。

所以,我們再來計算一下 Cn 的數值,從通分之後的步驟開始。

因此,給有 n 個加號的式子添加括號的方式的個數就是這樣的。

好了,這下就完成了一部分工作。那麼,我來驗算看看。

◎  ◎  ◎

看到米爾嘉如此簡便的解法,我一邊暗自佩服一邊開始計算。

「哇,太厲害了!確實答案是 1, 2, 5, 14 啊!」我驚歎道。

米爾嘉聽了我的話,滿臉笑容。

解答 7-1

「那我下次聽你說!」我說。

7.5.2 研究生成函數

雖然我掉入了米爾嘉的圈套,但她那完美的解答真是令我非常吃驚。我考慮通過生成函數來解題固然沒有錯,但我只是算到很複雜的有限項代數式那步,好像就無法再往下計算了。我甚至懷疑自己是不是挑戰了與自己實力不相符的題目。我求出生成函數那一刻的喜悅頓時被吹得煙消雲散了。

真是遺憾啊!我心中有點不服氣。

米爾嘉的臉上卻露出為難的表情。「哎呀,算了,先說說看吧。算出了推導公式後,接下來該怎麼做呢?」她催問我。

我將自己想試著運用生成函數的解法,建立生成函數的乘積關係,然後算出「先相乘後相加」這個形式,最後努力建立一元二次方程式,並終於計算出了生成函數的有限項代數式……一股腦兒地告訴了米爾嘉。能夠到生成函數的王國漫步固然很好,但是我卻不能再從生成函數的王國返回到數列的王國了。

我真的非常遺憾,感到很不服氣。

「喂,你算出的到底是什麼式子啊?」米爾嘉問我。

我沉默了。

「嗯?到底是什麼式子呀?」她打量著我的臉。

沒辦法,我只能在筆記本上寫出式子。

「嗯,難點好像有兩個吧。一個是正負號的部分,另一個是 的部分。」她說。

「這些我當然知道啦。我就是被這兩點卡住,算不下去了。」我著急地說。

對於我發急的聲音米爾嘉並不理會,很平靜地接著說:「首先,我們從正負號開始思考。」

米爾嘉看了一會兒數學公式,閉上眼,低下頭。然後,她舉起右手食指,朝著天空比劃著圈圈。她劃著 0,劃著 0,劃著無窮大,突然她睜開了眼睛,說:「我們回到定義看看吧。生成函數 C(x) 的定義是這樣的吧。」

「這麼說來,當 x 為 0 的時候,包含 x 的項都被抵消了,所以生成函數就變成了 C(0) = C0,於是,我們再回到你計算出的有限項代數式。」

「這時的 C(0) 會變成怎樣呢?」她問道。

「不可以哦。如果分母為 0 的話,除以 0 後,C(0) 就變成無窮大了。」我答道。我已經漸漸平靜下來了。我對米爾嘉發急有什麼用呢,聽她的話又有什麼用呢。

「沒有,可不是這樣的。」米爾嘉緩緩地搖搖頭,「一個數是變成了無窮大,而另一個數則不是。C(x) 的兩個帶有正負號的數字中,我們把那個帶正號的數字稱為 C+(x),把那個帶負號的數字稱為 C-(x),這樣就可以變形為以下形式。」

「為了不使它們除以 0,我們將分母移項後去掉看看。」

「當 x 為 0 時,上面兩個式子的左邊都為 0,但一個式子的右邊 為 2,而另一個式子的右邊 是 0。這說明了什麼

呢?」她問道。

「至少說明 C+(x) 不正確吧。」

「嗯。雖然不能說不用再深入對生成函數進行研究了,但至少可以說我們沒必要再對 C+(x) 刨根問底了。為了求得最後的公式,我們把目標鎖定在生成函數 C-(x) 上。接下來的目標,你認為是什麼呢?」她問道。

「對 該怎麼處理呢?」我問道。

看著我重新調整了心態,米爾嘉嫣然一笑。

生成函數 C(x) 的有限項代數式

7.5.3 圍巾

這時,我突然發現泰朵拉站在圖書室門口,正望著我和米爾嘉。她兩手拎著一隻小紙袋,一動不動地站在那裡。她是什麼時候站在那裡的呀?

我朝泰朵拉輕輕地舉了下手,示意我看到她了。她卻和往常不同,緩緩地走向我們,一點都沒有加快腳步,一臉嚴肅的樣子。

「學長,昨天真是謝謝您了。」泰朵拉輕輕向我道謝,低下頭,手指向那個紙袋子。裡面整整齊齊地疊放著昨天我借給她的那條圍巾。

「啊,沒關係,不用客氣。你沒感冒吧?」我問道。

「嗯,我沒關係。多虧您昨天借給我圍巾,又和我一起喝了熱飲。」泰朵拉邊說邊朝米爾嘉瞟了瞟。我也隨著泰朵拉的目光朝米爾嘉看了看。米爾嘉握著自動鉛筆的手停了下來,隨後她抬起頭,朝小紙袋瞥了一眼,之後便把目光停留在泰朵拉身上。兩個女孩就這樣沉默著,互相對視著。

誰都不說話。

就這樣沉默了幾秒鐘。

泰朵拉「呼」地吐了口氣,又重新將目光轉向我,說:「今天真是打擾了。你以後可要再教我數學哦。」泰朵拉朝我點了下頭,然後就走開了,當她走到圖書室門口時又回頭朝我微微致意。

這時,米爾嘉已經把頭轉向了草稿紙,開始寫起了數學公式。

「你想到什麼了嗎?」我問她。當然,是關於 的。

米爾嘉頭也沒抬,邊寫算式邊回答我。

「信。」她說。

「什麼?」我不明白。

米爾嘉沒有停筆,回答我說:「裡面有封信。」

我打開包看了看,把手伸進去摸索,圍巾下似乎藏著什麼。拿出來一看,是張很高級的白色賀卡。為什麼米爾嘉會注意到裡面有張賀卡呢?賀卡上寫著短短的一行字,是泰朵拉的字跡。

謝謝您借給我圍巾。圍巾很溫暖。

泰朵拉

PS:下次我們還去那家叫「豆子」的咖啡店吧。

7.5.4 最後的要塞

我們又回到了原來的問題。

我們已經求得了如下生成函數 C(x) 的有限項代數式。

生成函數 C(x) 的有限項代數式

接下來的問題就是 會變成什麼形式。

「我跟不上你解題的速度,米爾嘉。求得了 C(x) 的有限項代數式後,接下來該怎麼辦呢?在求斐波那契數列的通項公式時,我們是怎麼做的?」我問道。

「可以利用 C(x) 的有限項代數式來計算出 xn 的係數。也就是說,需要展開冪級數。」米爾嘉說。

「但是 真是麻煩啊。該怎麼處理它呢?」我低聲嘀咕著。

「所以只能將冪級數展開了吧。比如說,將係數的數列稱為 >,可以進行這樣的展開。」米爾嘉邊說邊寫出式子。

「生成函數 C(x) 是這樣的。

所以,為了去除分母,我們將分母移項。

因為 ,,替換後可得到下式。

將等式左邊的 2x 放入 這個符號裡,右邊將 k = 0 這一項寫出來。

將等式左邊調整為從 k = 1 開始。

把帶有 符號的項都歸納到左邊。

因為這個等式是無窮級數,所以為了改變和的先後次序,必須把條件說明清楚。但現在利用這個等式只是為了有所發現,所以我們就直接往下算吧。

以上等式是關於 x 的恆等式,比較兩邊的係數,可以得到 KnCn 的關係式。

整理這些式子後可以得到下式。

也就是說,如果求出了 Kn 的話,我們也就自然而然地求得了 Cn。最後的要塞就是 的展開了。」

7.5.5 攻陷

米爾嘉迫不及待地說:「那麼,我就來攻陷最後的要塞吧。現在,假設 ,可得

這時 成了所求的目標。從哪裡開始下手為好呢?」

「從一看就能明白的地方下手吧。」我說。

「嗯,那 K0 該怎麼處理才能讓人一看就懂呢?」米爾嘉問。

「那就試試 x = 0 嘍。」我立刻回答道,「如果這樣的話, 中常數項之外的項就都被抵消了」。也就是說,K(0) = K0。」

「是啊,那接著該怎麼辦呢?」米爾嘉問我。

「你是問該拿 x 怎麼辦嗎?」我反問道。

「不是。我們得快點使用函數解析的基本方法哦。」米爾嘉似乎有些急不可待。

「那是什麼?」我問。

「是微分啊。用 x 求導 K(x),然後數列轉換,就能求出常數項 K1。

所以可得

你知道為什麼這個 1 要這麼明確地寫出來吧?這是為了抓住求導後指數下降這個模式。走到這一步接下來可就輕鬆了。再接著求導 K'(x)。

所以,當 x 為 0 時,可求得下式。

接下來,反覆重複此操作,進行 nK(x) 的求導運算。假設 K(x) 經過 n 次求導運算後用 K( n)(x) 來表示。

再寫下去就太冗長了,我們就用下降階乘冪來表示吧。

所以當 x 為 0 時,就變成如下形式。

也就是說,可以用 K(n)(0) 的形式來表示 Kn,也就是泰勒展開式。

到這裡我們的工作就告一段落了。」

米爾嘉歇了口氣。

我說:「嗯,但是接下來好像就無法進展了,感覺像走到死胡同裡來了。」

「為什麼這麼說呢?現在我們用冪級數的形式求得了 K(x)。接下來我們用普通的函數形式來表示 K(x) 看看吧。」米爾嘉說。

「用普通的函數形式來求?」我疑惑不解。

「就是用求函數解析式的基本方法來做,又要用到微分哦。」米爾嘉邊說邊朝我眨了下眼睛。這可能是她第一次這麼調皮地朝我眨眼睛吧。

「回想一下 K(x) 的定義……

平方根也就是 次方,所以可以變形為這樣。

我們應該邊注意觀察出現的式子類型,邊反覆進行微分運算。

x = 0 代入後,我們可以求得最後的式子是這樣的。

我們再回頭看剛才我們用冪級數求得的式子,也就是你說算到那步走到死胡同裡的式子,我們把其中的 nn + 1 來替換。

通過這兩個式子可得到下式。

這樣,我們可以求得 ,並不是走到死胡同裡了哦。你還記得 KnCn 的關係嗎?

接下來就是用手運算的體力勞動了。

這個式子的分母 可以變形為 的形式。

因此,我們可以求得 Cn

好了,這下我們算是完成了一部分運算,求得了同一個公式。我們終於從生成函數的王國回到數列的王國啦。」

於是,米爾嘉露出了笑容,說:「歡迎你回來。」

7.5.6 半徑是 0 的圓

「我回來了!——噢,與其說這個倒不如說一聲謝謝。」我說。

「真是非常有意思哦,是次快樂的旅行吧。」她立刻豎起食指。

我看著米爾嘉,想著她這個人真是……雖然有些粗魯,但人還是很溫柔的,外表看上去很沉著冷靜,內心其實很火熱。我對米爾嘉其實還是……

米爾嘉瞇了下眼睛,站起身來,說:「為表紀念,我好想跳舞哦。」

我也站起身。

(這到底是怎麼回事?)

米爾嘉突然朝我伸出左手,我伸出右手,小心翼翼地牽起米爾嘉雪白的手指,就像是害怕驚動小鳥一樣。

(真暖和。)

我們的手就這樣牽著,緩步移向書架前的寬闊場地。

米爾嘉繞著我劃圈,慢慢地移動著舞步。

一步。

又一步。

放學後的圖書室。除了我們之外沒有其他人。

圖書室裡只聽得到她那輕輕的腳步聲。

「米爾嘉,你和我一直保持著相同的距離,就是在圓周上吧,算是單位圓吧。」我說。

真是的,我到底在說些什麼呀。

米爾嘉「嗯」了一聲,停下舞步,答道:「單位圓的前提可是我們的手臂長之和為 1 哦。」說著,她閉上了眼睛。

我突然想起來了。

……即使不能在米爾嘉身邊「很近很近的地方」,但至少要在她「旁邊」吧……

我正想著這些話的時候,米爾嘉睜開了眼睛。

「半徑如果為零的話也……」她邊說邊用力拉我到身邊,她力氣大得讓我吃驚。

「如果半徑為零的話也要保持一定距離嗎?」說著,米爾嘉把臉斜靠近我,我們倆的眼鏡就要碰到了。

我什麼話都說不出,米爾嘉也是,什麼都沒有說。

半徑即使為零,圓仍舊是圓。但這是一個特殊的圓點。

然後我就……我們就……就這樣沉默著,漸漸地靠近臉……

「放學時間到了。」圖書室傳來了瑞谷老師的聲音。

我們倆的距離一下子又從零拉開了,一直拉到兩人手臂長之和為止。

我的筆記

我和米爾嘉推導出通項公式的數列 ,這個數列被稱為卡塔蘭數列。另外,我考慮的「先相乘後相加的形式」被稱為卷積。

將數列和生成函數相對應後,就可以將「卷積後的數列」與「和原生成函數相乘後得到的函數」一一對應起來。也就是說,數列 的卷積形式可以表示為 ,也就形成了以下的對應關係。

半夜,我獨自在自己的房中興奮地思考著這些對應關係。「數列王國」中的「卷積」就是「生成函數王國」中的「乘積」。

這真是美妙的對應啊!