将整数转换为factoradic数字系统
factoradic的Python项目详细描述
factorial number system(也称为factoradic)是 将整数表示为阶乘的倍数之和。全部 整数在factoradic数系中有唯一的表示。 例如,数字1337可以表示为:
1*6! + 5*5! + 0*4! + 2*3! + 2*2! + 1*1! + 0*0!
系数为15 0 2 1 0。这是唯一的factoradic 十进制1337的表示。
factoradic数在组合数学中有用途,特别是在 排列的编号。这个factoradic库对于 在中转换为factoradic数字表示和从factoradic数字表示 python和命令行。
python接口
有关完整帮助:
>>> import factoradic >>> help(factoradic)
同时,这里有一些亮点。
要从整数转换为factoradic,请使用to_factoradic():
>>> factoradic.to_factoradic(1337) [0, 1, 2, 2, 0, 5, 1]
结果是系数列表,其中 基于零的索引给出一个位置值,该索引处的项是 系数乘以位置值。这个 元素从最不重要到最重要。自从 任何指数的系数必须小于或等于该指数, 索引0处的系数始终为0。
要从factoradic转换,请使用from_factoradic():
>>> factoradic.from_factoradic([0, 1, 2, 2, 0, 5, 1]) 1337
命令行界面
还有一个方便的命令行界面。运行factoradic --help 查看命令列表:
$ factoradic --help Factoradic. Convert to and from the factorial number system. Usage: factoradic from-integer <integer> [--expression] factoradic to-integer <coefficient-0> [<coefficient-1> [<coefficient-n>...]] Options: -e --expression Show as a mathematical expression.
要从整数转换为factoradic,请使用from-integer子命令:
$ factoradic from-integer 1729 0 1 0 0 2 2 2
系数从最低有效值报告到最高有效值。 将结果作为数学表达式查看,指定--expression标志:
$ factoradic from-integer 1729 --expression 2*6! + 2*5! + 2*4! + 0*3! + 0*2! + 1*1! + 0*0!
要从factoradic表示转换,请使用to-integer子命令, 指定从最低有效到最高有效的系数:
$ factoradic to-integer 0 1 0 0 2 2 2 1729