图片缩略图

数不胜数

version 1.3.2 (5.94 KB) by 斯蒂芬。
使用Knuth的Myriad/Yllion命名方案将数字转换为给出值的字符串。

351下载

更新2020年7月9日

查看许可协议

使用Donald Knuth的Myriad (aka - yllion)数字命名方案将一个数字标量转换为一个给出数字值的字符串,例如1024e6 -> 'Ten Myllion 2400 Hundred Myriad',或'10;2400,0000'作为数字。

语法:
str = num2myriad (num)
str = num2myriad (num,本局)

输入数值四舍五入,输出精度定义为确保最小意外输出:单=6位;双= 15位数;而int/uint值的解析是完全精确的。该函数实现了一个高效的算法,不使用递归,只使用一个for循环。

###万象系统(又名Yllion)###

Donald Knuth的Myriad数字命名系统使用对数增加的组大小,更有效地使用组名:

10^0一
10 ^ 1十
10 ^ 200
10 ^ 4无数
10^8米利昂
10 ^ 16 byllion
10 ^ 32 tryllion
10 ^ 64 quadryllion
10 ^ 128 quintyllion
10 ^ 256 sextyllion

Knuth把这个单词的发音定义为“a million(读作mile-yun)”。

原始参考:“超自然数字”由Donald E.Knuth编写
(第310-325页,《数学加德纳》编辑大卫·A·克拉纳,1981年)
在线参考:
http://en.wikipedia.org/wiki/-yllion
http://mrob.com/pub/math/largenum-2.html
https://sites.google.com/site/pointlesslargenumberstuff/home/1/knuthyllions

###例子###

>>百万(0)
ans=‘零’

>>百万(1024)
ans = ' 1024 '

> > num2myriad (intmin (int16))
ans = '负3万数2768 '
> > num2myriad (intmin(“int16”),真的)
ans = ' 2768 '

> > num2myriad (9876543210)
ans = ' 98myllion 7654 Myriad 32210 '
> > num2myriad(9876543210,真的)
ans='98;7654,3210'

> > num2myriad (1 e64假)
ans = 'One quadyllion '
>>num2百万(1e64,真)
ans = ' 1:: 0000, 0000, 0000, 0000:0000, 0000; 0000; 0000; 0000年,0000年;0000年,0000:0000,0000;0000年,0000年

>> num2myriad(1e303) % aka one centibillion(short scale)
ans = 'Ten Hundred Myriad mybilliontrillion sexty万亿'

引用作为

斯蒂芬(2021)。数不胜数(//www.tatmou.com/matlabcentral/fileexchange/51261-number-to-myriad),MATLAB中心文件交换