1. 程式人生 > 其它 >[Python學習筆記-012]古巴比倫人的乘法表

[Python學習筆記-012]古巴比倫人的乘法表

問題:我們知道,古巴比倫人採用的六十進位制。那麼,如果為古巴比倫人繪製一張59x59的乘法表,該如何實現呢?

通過Python實現並不複雜,但關鍵步驟有二:

  • 01 - 將十進位制數轉換為六十進位制數
  • 02 - 將六十進位制數翻譯成古巴比倫人的符號數字

在實現上述關鍵步驟之前,我們先看看古巴比倫人的符號數字。

在上述符號系統中,一把小鑰匙表示1,一個魚骨頭表示10。

  • 1
  • 10

接下來,我們將任何一個十進位制數轉換為六十進位制數。

1. 將十進位制數轉換為六十進位制數

 1 def dec2basen(n, basen=2):
 2     """ Convert decimal number to base-N number 
""" 3 m = n 4 k = 0 5 while True: 6 cnt = m // basen 7 if cnt == 0: 8 break 9 m = cnt 10 k += 1 11 12 m = n 13 out = [] 14 i = k 15 while i >= 0: 16 x = m // (basen ** i) 17 out.append(x) 18 19 m -= x * (basen ** i)
20 i -= 1 21 22 return out 23 24 25 def dectobase60(n): 26 """ Convert decimal number to base-60 number """ 27 return dec2basen(n, 60)

。。。未完待續。。。