詩歌服務中的計算

一種演算法從古典梵文數學文字中計算2的冪

訶利 वंश》的一部分,它是梵文史詩《摩訶婆羅多》的附錄。

加入我們的科學愛好者社群!

本文發表於《大眾科學》的前部落格網路,僅反映作者的觀點,不一定反映《大眾科學》的觀點


在我最近參加的一次講座中,演講者分享了一些神秘的指示

當[偶數]被減半時,[寫]二;

當[奇數]減1時,[寫]0;

其中[寫]0,加倍;

其中減半,自乘。

對於像我這樣具有數學和文化背景的人來說,這完全不清楚,但上面的幾行是一個千年歷史的演算法,用於計算2的冪。它們出現在印度數學家平伽羅的梵文韻律學論文《Chandaḥśāstra》中,他生活在公元前2或3世紀左右。


關於支援科學新聞

如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保未來能夠繼續講述關於發現和塑造我們當今世界的想法的具有影響力的故事。


即使在被告知以上幾行包含計算2的冪的指令後,我也不確定如何部署它們。幸運的是,正在發表演講的金·普洛夫克用一個例子進行了演示。為了找到24,該演算法產生了以下計算序列。

4

4/2=2

2/2=1

1−1=0

2

2

0

16

4

2

1

在頂行,從左到右工作,我們從給定的數字4開始,然後如果數字是偶數則除以2,如果數字是奇數則減去1,迭代此過程直到我們得到0。在中間行,如果減半則記錄2,如果減去則記錄0。在底行,從右到左工作,我們從數字1開始,然後在上面一行看到0則加倍,如果看到2則平方。

這是數字更大的過程,7。計算27

7

7−1=6

6/2=3

3−1=2

2/2=1

1−1=0

0

2

0

2

0

128

64

8

4

2

1

我玩了幾次這個演算法,開始明白為什麼它總是產生正確的答案。平方一個數字使指數加倍,對於基數2,將指數加一對應於將數字加倍。這種方法比簡單的重複加倍步驟更少,我發現玩起來非常令人滿意。

平伽羅記錄了這個服務於文學的演算法。在梵文中,一個音節可以是重音節或輕音節,他正在確定在具有n個音節的韻律中可能存在的重音節和輕音節的組合數量。(並非所有這些韻律都實際用於文學中,因此問題是理論問題,而不是文學實踐。)他的文字包括與計算具有一定數量的重音節或輕音節的韻律相關的其他計算。

一旦被解釋,平伽羅的演算法對我來說很滿意,但他的指令在其原始形式中充其量似乎是神秘的。我將其視為提醒,即數學不能完全從產生它的其餘文化中完全孤立地解釋。要理解為什麼平伽羅的演算法採取現在的形式,必須瞭解梵語語言、語法和美學,以及後來學者對古典文字進行註釋的歷史。

在她《印度數學》一書中,普洛夫克包含了一個關於梵語語言和文學的附錄,例如,理解梵語詩歌韻律的重要性有助於數學史學生理解為什麼在梵語數學文字中用某些詞語和短語代替數字。對梵語文學的理解也鼓勵現代解釋者保持謹慎,而不是對我們對幾個世紀前的梵語數學文字的知識過於自信。普洛夫克在梵語附錄的結尾寫了這段話(強調是她加的)

總而言之,從中世紀用梵語寫作的數學家想要表達的意思,到現代翻譯家聲稱他所說的意思,這條道路通常漫長而危險。如果作者的文字被一長串抄寫員成功儲存和轉錄,並且如果後來遇到的文字手稿的註釋者正確理解並解釋了它,並且如果出版該文字的編輯在抄寫員出錯的情況下選擇了合適的手稿讀物,並且如果譯者有足夠的語言和技術知識,加上足夠的批判性想象力,來選擇最合適的文字結果版本的可能解釋,那麼讀者遇到的很可能就是對原始文字相當不錯的近似。但是在這個過程的每個階段都存在重大的不確定性,因此在處理最終結果時始終需要謹慎。

普洛夫克的演講實際上不是關於平伽羅和他的詩歌演算法。它是關於比魯尼,一位11世紀的波斯博學家,他訪問了印度並撰寫了關於印度數學學術的文章。他也試圖理解幾個世紀前這些神秘的演算法。儘管透過他的視角瞥見數學史提醒了我文化差異可能會使像我這樣的人難以理解像平伽羅這樣的人的工作,但這也讓我對幾個世紀前的比魯尼感到驚訝的親近感,他像我一樣試圖理解數學和以前實踐數學的人。

© .