以下示例在有关软件工程的书中。我无法理解这种同态如何将十进制数字转换为等效的自然数。难道不是所有数字都加起来吗?
让0、1、2、3、4、5、6、7、8、9“以某种方式”从左到右对应于十进制数字零,一,二,三,四的自然数,五,六,七,八,九;然后
type
<NatNum> ::= <DecDig> | <DecDig> <NatNum>
<DecDig> ::= zero | one | two | three | ... | nine
value
M: <NatNum> -> Num
M(d,n)≡10*M(d)+M(n)
M(d)≡case d of zero->0,one->1,...,nine->9 end
非正式地说明了自然数数字的含义
态射可以区分仅是十进制的自然数和由十进制和自然数的复合数的自然数。谢谢您的帮助。
答案 0 :(得分:0)
这实际上是:
n = 0
for digit in number:
n = n * 10
n = n + digit
return n