PyAlgebraLib
v1.0.0
简单的Python程序使用有效的算法(例如Karatsuba的算法)进行代数操作,以用于乘法或扩展的Euclidean算法用于Great Common Divisor(GCD)。
该程序旨在是轻量级(无依赖性),并且非常有效。
pip install PyAlgebraLib您可以导入模块:
import PyAlgebraLib as pa可以使用从基数2到基数16的数字进行操作。在每个操作中都不在基础之间转换。
注意:每个数字必须输入,并将作为字符串返回,除了基础。
pip install PyAlgebraLib您可以导入模块:
import PyAlgebraLib as pa然后,您可以执行类似的操作:
pa . karatsuba ( "364da" , "-13f" , 16 ) # Multiplication (karatsuba algorithm)
pa . extEuclid ( "-1460" , "44321521" , 7 ) # GCD (Extended)输出是带有结果的字符串或元组(S),请查看特定功能DocStrings以获取更多信息。
例子:
pa . extEuclid ( "-1460" , "44321521" , 7 )
# Output: ('1', '-20066304', '511')
pa . modularInversion ( "9a1aa8a02232" , "a6a722a" , 11 )
# Output: '3293845' - Addition
- Subtraction
- Multiplication (Normal "primary school method" + Karatsuba algorithm)
- Division
- GCD of 2 numbers (Extended Euclidean algorithm)
- Modular Arithmetic:
- Reduction
- Addition
- Subtraction
- Multiplication
- Inversion
| 功能名称 | 输入 | 输出 |
|---|---|---|
| 去除序列 | A(str) | str:删除了所有领先零的修改后字符串 |
| 大Qual | x(str),y(str) | 布尔:如果x大于或等于y,则为false,否则为 |
| 划分 | x(str),y(str),r(int)= 10 | str:x的商除以y,在radix r中表达 |
| ElementaryAdd | x(str),y(str),c(str),r(int)= 10 | 元组:(结果(str),携带(str)) |
| 基本词 | x(str),y(str),c(str),r(int)= 10 | 元组:(结果(str),携带(str)) |
| 小学 | x(str),y(str),z(str),c(str),r(int)= 10 | 元组:(结果(str),携带(str)) |
| 添加 | x(str),y(str),r(int)= 10 | str:radix r中x + y的结果 |
| 减去 | x(str),y(str),r(int)= 10 | str:radix r中x -y的结果 |
| 乘 | x(str),y(str),r(int)= 10 | str:radix r中x * y的结果 |
| Karatsuba | x(str),y(str),r(int)= 10 | str:x * y使用radix r中的karatsuba算法的结果 |
| 超核素 | x(str),y(str),r(int)= 10 | 元组:( gcd(str),a(str),b(str)) |
| 模块化 | n(str),m(str),r(int)= 10 | str:radix r中n mod m的结果 |
| 模块化 | x(str),y(str),m(str),r(int)= 10 | str:radix r中(x + y)mod m的结果 |
| 模块化 | x(str),y(str),m(str),r(int)= 10 | str:radix r中(x -y)mod m的结果 |
| 模块化 | x(str),y(str),m(str),r(int)= 10 | str:radix r中(x * y)mod m的结果 |
| 模块化 | a(str),m(str),r(int)= 10 | str:radix r中mod m的逆,或打印“不存在逆” |