首页 » 漏洞 » 如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

 

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

人们十年如一日(不是说杜X斯的广告)的又迎来了一年一度的苹果发布会,作为史上被提前爆料最多的一届,还是在产品的命名上给了人们一些惊喜或是纳闷儿之处 --- 传说中的7s直接变成了8,而iphone9和windows9的贴吧吧主据说抱头痛哭晕在了厕所; 最重量级的新手机被命名为了 iPhone X

需要注意的是,不要再像 Windows XP 那样读成不雅的"瘟□□"了,正确的读音是 “爱凤十” (pronounced iPhone Ten)

那么问题来了, 为什么用  表示  10  呢? 其实大家日常中也能经常见到的是,手表钟表老怀表上,就是这么表示数字的,其正式的称呼是 --- “罗马计数法”

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

【西玛表】

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

【罗马表】

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

计数法的渊源

计数法 就是记录或标志数目的方法,主要指数字符号的表现形态和记数工具的使用

除了当今通行的阿拉伯数字十进制计数法,历史上主要使用的计数法还有:

  • 巴比伦记数法 :巴比伦地区用泥板铭刻来记数,约始于公元前三四千年。记数时采用60进位值制,依靠数码符号的依次排列相加表示数目

  • 古埃及记数法 :古埃及最早的数码是发现于石刻上的象形文符号,它使用十进位非位值制方法记数,每一个较高的单位用一个特殊符号表示。记数时也是依次重复排列这些符号

  • 中国古代记数法 :中国最早的记数体系见于甲骨文,约形成于公元前16~前11世纪。主要用于占卜祭祀。它是十进位非位值制数系,独立的符号共发现13个。记数时采用一种特别的乘法组合原则,将十、百、千、万作为单位词,对十以上的数目还多用合文并写

  • 古希腊记数法 :古希腊最早的数码发现于克里特岛是公元前1500年左右泥板上使用的象形文字记数法,记数靠重复排列

  • 中美洲地区古代记数法 :中美洲地区的阿兹台克人和玛雅人在公元初年时记数都用20进位制记数法,但前者是非位值制,而后者则是严格的位值制,主要用于记载编年史

  • 古印度记数法 :古印度在公元前2500年左右出现一种称为哈拉巴数码的铭文记数法。印度数码约在公元 9世纪传入阿拉伯地区,后来又在欧洲和世界各地普及,逐步发展成为现在通用的阿拉伯数字形式

  • 苏州码子 ,也叫草码,花码、番仔码、商码,是中国早期民间的“商业数字”。它脱胎于中国文化历史上的算筹,也是唯一还在被使用的算筹系统

罗马计数法的常见用途

  • 公共纪念建筑物

  • 钟表

  • 日历

  • 影视作品制作年份

  • 英文、法文等使用拉丁字母的语言所写的书籍、文件的章节编号(多用大写字母),例如:

    • Chapter XXIV(第二十四章)

    • Section VI.3(第六段之第三节)

  • 有序列表(ordered list)的编号(多用小写字母),例如:

    • i) 第一项

    • ii) 第二项

    • iii) 第三项

    • iv) 第四项

    • v) 第五项

    • vi) 第六项

罗马计数法的基本规则

罗马计数法使用迭加计数的方式,下面是罗马计数法的基础数值定义:

  • I(表示十进制数1)

  • V(表示5)

  • X(表示10)

  • L(表示50)

  • C(表示100)

  • D(表示500)

  • M(表示1000)

这些基本数字,经过复合可以表示其它的数,最基本记数的方法如下:

  • 相同的数字列表示相加。如: II 表示十进制数 2ⅩⅩⅩ 表示十进制数 30

  • 不同的数字并列,右边的小于左边的表示相加。如: 表示十进制数 6LX 表示十进制数 60

  • 不同的数字并列,左边的小于右边的表示右边的减去左边的

比如1829,记成MDCCCXXIX, 分解下来就是: 千位:M;百位:DCCC;十位:XX;个位:IX

常用数字:

1~10: I II III IV V VI VII VIII IX X  11~20: XI XII XIII XIV XV XVI XVII XVIII XIX XX  21~30: XXI XXII XXIII XXIV XXV XXVI XXVII XXVIII XXIX XXX  31~40: XXXIXXXII XXXIII XXXIV XXXV XXXVI XXXVII XXXVIII XXXIX XL  41~50: XLI XLII XLIII XLIV XLV XLVI XLVII XLVII XLIX L

部分数字对应的阿拉伯数字和拉丁文名称:

I - 1 unus II - 2 duo III - 3 tres IV - 4 quattuor V - 5 quinque VI - 6 sex VII - 7 septem VIII - 8 octo IX - 9 novem X - 10 decem XI - 11 undecim XII - 12 duodecim XIII - 13 tresdecim  XIV - 14 quattuordecim XV - 15 quindecim XVI - 16 sedecim XVII - 17  septendecim XVIII - 18 duodeviginti XIX - 19 undeviginti XX - 20 viginti XXI - 21 viginti unus  XXII - 22 viginti duo XXVIII - 28 duodetriginta XXIX - 29  undetriginta XXX - 30 triginta XL - 40 quadraginta L - 50  quinquaginta

需要注意的是罗马数字中没有“0”,与进位制无关。

一般认为罗马数字只用来记数,而不作演算

用JS算算罗马计数法的出生年份

按照以上规则,写一个简单的函数,就可以得到一个闪亮炫酷的罗马计数法出生年份了:

const ROMAN_NUMBERS = [     [1000, "M"],      [900, "CM"],      [500, "D"],      [400, "CD"],      [100, "C"],      [90, "XC"],      [50, "L"],      [40, "XL"],      [10, "X"],      [9, "IX"],      [5, "V"],      [4, "IV"],      [1, "I"] ];  function getRomanBirthYear(n) {         return ROMAN_NUMBERS.reduce(         (prev, rnItem)=>{              const                  [num, rom] = rnItem,                 rmdr = prev.remainder             ;                                      if (num > rmdr) //遍历到的基数比余数要大,略过                 return prev;                          return {                 remainder: rmdr % num,                 roman: prev.roman + Array( //拼接字符串                     Math.floor(rmdr / num) + 1                 ).join(rom) //基数 + 若干更小的基数             };         }, {             remainder: n, //需要处理的余数,如1982->982->82->2             roman: '' //已处理好的罗马字母         }     ).roman;    }                           var y = getRomanBirthYear(1997); console.log(y); //MCMXCVII


参考资料:

  • http://blog.163.com/celia_0827/blog/static/52447320125166475519/

  • http://www.baike.com/wiki/记数法

  • http://www.baike.com/wiki/十进制计数法

  • http://rosettacode.org/wiki/Roman_numerals/Encode#ES6

  • http://www.baike.com/wiki/苏州码子

  • https://zh.wikipedia.org/zh-hans/罗马数字

-------------------------------------

长按二维码或搜索 fewelife 关注我们哦

如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份

原文链接:如何获得一个 iPhone X 一样炫酷的罗马计数法出生年份,转载请注明来源!

0