#numbers #name #scale #powers #digits #give

googology

用于为大型数字命名的crate

3个不稳定版本

0.2.1 2021年3月2日
0.2.0 2021年3月1日
0.1.0 2020年5月15日

#1040 in 数学

Apache-2.0

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