罗马数字
今天再看罗马数字,才突然发现其完全是一种不同寻常的计数方法。我们平常用的是进制计数法(二进制、十进制等),而罗马数字完全不同。简单列几个罗马数字:
- 1 => I
- 2 => II
- 5 => V
- 6 => VI
- 10 => X
- 50 => L
- 100 => C
- 500 => D
- 1000 => M
有什么发现, 最直接的, 罗马数字的值就是将所有相加,完事.
罗马数字中没有0
这是为啥呢?其实归功于罗马数字特有的计数方式,再进制计数法中0是做什么用的?占位。比如数字100中的0表示什么意思:1个100,0个10,0个1。0在其中仅仅表示此位空。而罗马数字因为其计数性质,数字表示累加的结果,明显不需要占位符。
X、L这些数有什么用
既然完全累加,又为什么5表示为V,10表示为X,全都用I表示不就好了么。
举个例子,比较 IIIIII 和 IIIII 哪个较大?VI 和 V 哪个较大?嗯,明白了。而且数字也变短了。科学计数法:10^6 和10^7也是同样的道理。这就有点像我们写程序时的抽象
罗马数字的运算
罗马数字的运算也很简单,完全没有进位这些问题。
加法就是将两个数字并排写就行,有点像取并集
减法就是取出其中数字的部分,有点像取交集
乘法和除法就是加减法,不说了
之前一定是我的思想被禁锢了,没想到啊。既然除了进制计数,还存在其他计数方法,那一定除了罗马数字还有其他的计数方式,只是我没有发现或没有想到。厉害!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY