複製鏈接
請複製以下鏈接發送給好友

九九表

鎖定
九九表也稱為“乘法口訣表”,俗稱《小九九》,以一至九每二數相乘所編成,如“一一得一”,“九九八十一”等,起源甚早,我國敦煌漢簡和居延漢簡中,均有九九表的描述,元代朱世傑所著《算學啓蒙》中,有九九數法。九九表是個位數的乘法口訣,因古代從“九九八十一”開始,故名九九表。《管子》等先秦典籍中許多九九口訣片段,史籍中有齊桓公設庭燎,視“九九”為“薄能”而招賢納士的故事。20世紀50~60年代出土的九九表竹簡很多,然而均殘缺。
中文名
九九表
外文名
nine nine table
俗    稱
《小九九》
定    義
乘法口訣表
表    示
數學表格,或用C語言描述
應    用
數學
釋    義
以一至九每二數相乘所編成

九九表口訣簡介

作為啓蒙教材,我們都背過九九乘法表:一一得一、一二得二……九九八十一。而古代是從"九九八十一"開始,因此稱"九九表"。九九表的使用,對於完成乘法是大有幫助的。齊桓公納賢的故事説明,到公元前7世紀時,九九歌訣已不稀罕。也許有人認為這種成績不值一提。但在古代埃及作乘法卻要用倍乘的方式呢。舉個例子。如算23×13,就需要從23開始,加倍得到23×2,23×4,23×8,然後注意到13=1+4+8,於是23+23×4+23×8加起來的結果就是23×13。從比較中不難看出使用九九表的優越性了。 [1] 
根據考古專家在湖南張家界古人堤漢代遺址出土的簡牘上發現的漢代"九九乘法表",竟與現今生活中使用的乘法口訣表有着驚人的一致。這枚記載有"九九乘法表"的簡牘是木質的,大約有22釐米長,殘損比較嚴重。此前在西里耶古城出土的一枚秦簡上也發現了距今2200多年的乘法口訣表,並被考證為中國現今發現的最早的乘法口訣表實物。除了裏耶秦簡外,與張家界古人堤遺址發現的這枚簡牘樣式基本一致的"九九乘法表"還曾在樓蘭文書中見到過,那是寫在兩張殘紙上的九九乘法表,為瑞典探險家斯文赫定在上個世紀初期發掘。乘法表在古代並非中國一家獨有,古巴比倫泥版書上也有乘法表。但漢字(包括數目字)單音節發聲的特點,使之讀起來朗朗上口;後來發展起來的珠算口訣也承繼了這一特點,對於運算速度的提高和算法的改進起到一定作用。 [1] 
九九表是個位數的乘法口訣,因古代從“九九八十一”開始,故名九九表。《管子》等先秦典籍中許多九九口訣片段,史籍中有齊桓公設庭燎,視“九九”為“薄能”而招賢納士的故事。20世紀50~60年代出土的九九表竹簡很多,然而均殘缺。 [2]  九九表在西方也叫作“畢達哥拉斯表”。 [3] 
“九九表”木牘則是迄今為止中國發現最早最完整的乘法口訣表實物,也是世界上最早的九九乘數表實物 [4] 

九九表歷史故事

九九表故事內容

九九表在我國古代叫九九歌。關於它有這樣一個故事:傳説春秋時期,齊桓公曾經設立招賢館徵求天下才。可是等了很久,一直沒有人來應徵。過了一年多。才來了一個人.他把“九九歌”獻給齊桓公,作為表示才學的獻禮。齊桓公覺得此人十分可笑,就對這個人説:“九九歌也能拿出來表示才學嗎?” [5] 
來人很有禮貌地回答説:“會九九歌確實夠不上什麼才學,但是如果您對我這個只懂得九九歌的人都能以禮相待的話,還怕天下高明人才不投奔到您這兒來嗎?” [5] 
齊桓公覺得此人説得有理.就把他迎進招賢館,並給予隆重的招待。這個消息不脛而走,果然,不到一個月的時間,就有許多賢才從四面八方來到了齊國。 [5] 

九九表反映事實

這個故事説明,九九歌的出現不會晚於春秋戰國時代,在那時九九歌已經廣為流傳了。最早的九九歌是大數排在前面的,從“九九八十一”開始到“二二而四”止。到《孫子算經》已經擴充至“一一如一”,這大約是公元5至10世紀的事了。大約在13-14世紀的宋朝,九九歌的順序才反轉過來,變成和現代所使用的一樣,由“一一得一”開始至“九九八十一”結束。 [5] 

九九表程序實現

利用C語言輸出
利用C語言可輸出九九表,該例的關鍵在於理解for循環語句,掌握光標位置的控制方法。具體程序如下: [6] 
#include <stdio.h>
#include <conio.h>
void main(){
int i,j,x,y;
clrscr();
printf("\n\n ***九九表***\n\n")
x=9;
y=5;
  for(i=1;i<=9;i++){
      gotoxy(x,y);
      printf("%2d",i);
      x+=3;
  }
  x=7;
  y=6;
  for(i=1;i<=9;i++){
      gotoxy(x,y);
      printf("%2d",i);
      y++;
  }
  x=9;
  y=6;
  for(i=1;i<=9;i++){
      for(j=1;j<=9;j++){
          gotoxy(x,y);
          printf("%2d",i);
          y++;
      }  
  y-=9;
  x+=3;
  }
  printf("\n\n");
}
利用Excel製作
九九表中的內容存在着明顯的規律,每一個表達式都是由被乘數、乘號、乘數、等號和積5個部分構成的,而式子中的被乘數與單元格所在的列號相同,乘數與單元格所在的行號相同。可以設想,使用ROW、COLUMN兩個函數的值來表示單元格中乘法表達式的被乘數和乘數,表達式中的積可以使用這兩個函數值相乘得到。以往使用Excel進行計算時通常都是在1個單元格中輸入1個數值或字符串,那麼如何在1個單元格中輸入由被乘數、乘號、乘數、等號和積5個部分組成的乘法表達式呢?在這裏可以使用文本鏈接運算符“&”將這些內容連接起來構成1個新的字符串來表示九九表中的1個乘法表達式。實施步驟如下:
利用Excel製作九九表 利用Excel製作九九表
(1)選中Excel工作表中的A1單元格。
(2)在單元格中輸入公式“=COLUMN()&”×”&ROW()&”=”&ROW()*COLUMN()”。
(3)拖動A1單元格右下角的“填充柄”到A9單元格,即將A1單元格中的公式複製到A2:A9單元格區域。此時A1:A9單元格區域處於選中狀態,拖動區域右下角的“填充柄”,將公式複製到B1:I9。
需要注意的是這樣直接得到的結果並不盡如人意。右上方的表達式應該隱去,才符合本任務的要求。也就是説,乘數大於或等於被乘數時才顯示乘法表達式,而在乘數小於被乘數時單元格中不顯示內容。
(4)修改A1單元格的公式,在原公式中添加IF函數:
”=IF(ROW()<COLUMN(),"",COLUMN()&”×”&ROW()&"=”&ROW()*COLUMN())”
完成公式輸入後,再將公式複製到其他單元格,最終即得到Excel形式的九九表。
參考資料
  • 1.    阿杰編著.易經 999個易經問題活佔活斷.青海:青海人民出版社,2011:9-9
  • 2.    金秋鵬主編.中國科學技術史 圖錄卷.北京:科學出版社,2008:132-132
  • 3.    谷超豪主編.數學詞典.上海:上海辭書出版社,1992:5-5
  • 4.    世界最早九九乘數表實物亮相中國國家博物館  .中國新聞網[引用日期2019-08-07]
  • 5.    李毓佩著.中國科普大獎圖書典藏書系 數學大世界.武漢:湖北科學技術出版社,2014:87-87
  • 6.    李敬兆主編;張丹丹,湯文兵副主編.C語言程序設計教程.西安:西安電子科技大學出版社,2014:230-231