computer-science - 十进制数字自然数的语义
问题描述
下面的例子是在一本关于软件工程的书中。我无法理解这种态射如何将十进制数字转换为等效的自然数。它不只是将所有数字相加吗?
让 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
非正式地解释自然数的含义
态射区分仅是小数的自然数和由小数和自然数组合而成的自然数。感谢您的帮助。
解决方案
这实际上是:
n = 0
for digit in number:
n = n * 10
n = n + digit
return n
推荐阅读
- java - 当服务器被杀死时,如何将变量列表转储到文件中?
- excel - 使用 POI 读取 .xlsm 宏文件不适用于 VBAMacroReader 和 VBAMacroExtractor
- javascript - 导入提供 JSON 数据的模块时如何传递参数?
- sqlalchemy - Apache Superset-Ubuntu-安装
- python - Graphviz 格式:“jpeg”无法识别
- python - 如何将函数应用于时间戳列表以创建熊猫系列?
- java - JavaFX 窗口 setOnShown() 与 setOnShowing()
- python - 在 pySpark 中处理空数组(可选二进制元素 (UTF8) 不是一个组)
- visual-studio-code - 更改 VS Code 缩进指南以显示当前行开始的缩进
- html - 如何在我的 html/css 中显示我的背景图像?