3个不稳定版本
0.2.1 | 2021年3月2日 |
---|---|
0.2.0 | 2021年3月1日 |
0.1.0 | 2020年5月15日 |
#1040 in 数学
36KB
483 行
高阶数学
高阶数学是大数的研究和命名法。此crate专注于描述中的后一部分,并提供将任意大小的数字转换为某些自然语言描述的实用程序。
目前,此crate支持两种命名大数字的系统。
第一种是康威-韦克斯勒系统,它使用可能对英语使用者熟悉的名称,例如百万、十亿等等...通过链式拉丁词缀(例如数字“一百万兆”),只要有一个足够大的内存来存储输入中的数字以及输出字符串,就可以使用此系统为任何数字生成名称。
此系统支持三个不同的“缩放”参数
Scale::Short
使用现代英语命名约定,其中每个新的“illion”按1,000的幂缩放。10^9的值被称为"一亿"
。Scale::LongBritish
使用1974年之前在英国使用的一种较老的约定。每个新的“illion”按1,000,000的幂缩放,位于“illion”之间的1,000的幂用“thousand”作为前缀。因此,10^9的值被称为"一千万"
。Scale::LongPeletier
使用许多欧洲语言仍在使用的命名约定。与Scale::LongBritish
类似,“illion”按1,000,000的幂缩放。但是,它们不是使用“thousand”作为前缀,而是使用“ard”而不是“on”作为后缀。因此,10^9的值被称为"一百万亿"
。
还提供了一个名为Knuth-Yllion系统的替代系统。在这里,而不是通过1,000或1,000,000的幂来缩放,缩放是指数级的。对于10^(2^n)中的每个n都赋予一个新的名称。例如,10^2是一百,10^4是一万,10^8是一百万。对于介于这些值之间的值,我们使用较小尺度的“yllion”数字来描述。例如,10^14将被称为“一百一万万”。
每个模块都提供了两个函数
full_name
给任意数字赋予一个名称,前提是给出它的十进制字符串表示形式。power_of_ten
给十的幂赋予一个名称。这对于可能太大而无法存储在内存中的数字可能很有用。
依赖关系
~500KB
~11K SLoC