[Python学习笔记-012]古巴比伦人的乘法表

问题:我们知道,古巴比伦人采用的六十进制。那么,如果为古巴比伦人绘制一张59x59的乘法表,该如何实现呢?

通过Python实现并不复杂,但关键步骤有二:

  • 01 - 将十进制数转换为六十进制数
  • 02 - 将六十进制数翻译成古巴比伦人的符号数字

在实现上述关键步骤之前,我们先看看古巴比伦人的符号数字。

[Python学习笔记-012]古巴比伦人的乘法表

在上述符号系统中,一把小钥匙表示1,一个鱼骨头表示10。

  • 1

[Python学习笔记-012]古巴比伦人的乘法表

  • 10

[Python学习笔记-012]古巴比伦人的乘法表

 接下来,我们将任何一个十进制数转换为六十进制数。

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)

 

。。。未完待续。。。

上一篇:操作系统大作业-二级页表


下一篇:ACM C++基础算法模板