PyAlgebraLib
v1.0.0
โปรแกรม Python ง่าย ๆ ในการดำเนินการพีชคณิตโดยใช้อัลกอริทึมที่มีประสิทธิภาพเช่นอัลกอริทึมของ Karatsuba สำหรับการคูณหรืออัลกอริทึมแบบลิดที่ขยายออกไปสำหรับ 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)เอาต์พุตเป็นทั้งสตริงหรือ tuple ที่มีผลลัพธ์ให้ตรวจสอบฟังก์ชันฟังก์ชันเฉพาะสำหรับข้อมูลเพิ่มเติม
ตัวอย่าง:
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
| ชื่อฟังก์ชั่น | ป้อนข้อมูล | เอาท์พุท |
|---|---|---|
| RemoveLeadingzeros | A (Str) | STR: สตริงที่แก้ไขพร้อมศูนย์ชั้นนำทั้งหมดลบออก |
| มากกว่า | x (str), y (str) | บูล: จริงถ้า x มากกว่าหรือเท่ากับ y, เท็จเป็นอย่างอื่น |
| แบ่ง | x (str), y (str), r (int) = 10 | STR: ความฉลาดของ X หารด้วย y, แสดงใน radix r |
| ExtilatearyAdd | x (str), y (str), c (str), r (int) = 10 | tuple: (ผลลัพธ์ (str), พกพา (str)) |
| ระดับประถมศึกษา | x (str), y (str), c (str), r (int) = 10 | tuple: (ผลลัพธ์ (str), พกพา (str)) |
| ElementaryMult | x (str), y (str), z (str), c (str), r (int) = 10 | tuple: (ผลลัพธ์ (str), พกพา (str)) |
| เพิ่ม | x (str), y (str), r (int) = 10 | Str: ผลของ x + y ใน radix r |
| ลบออก | x (str), y (str), r (int) = 10 | Str: ผลของ x - y ใน radix r |
| คูณ | x (str), y (str), r (int) = 10 | Str: ผลของ x * y ใน radix r |
| คารัทบะ | x (str), y (str), r (int) = 10 | STR: ผลลัพธ์ของ x * y โดยใช้อัลกอริทึม Karatsuba ใน Radix R |
| เอ็กซ์ตูลิก | x (str), y (str), r (int) = 10 | Tuple: (GCD (STR), A (STR), B (STR)) |
| การยกเลิกแบบแยกส่วน | n (str), m (str), r (int) = 10 | Str: ผลลัพธ์ของ n mod m ใน radix r |
| modularaddition | x (str), y (str), m (str), r (int) = 10 | Str: ผลลัพธ์ของ (x + y) mod m ใน radix r |
| Modularsubtraction | x (str), y (str), m (str), r (int) = 10 | Str: ผลลัพธ์ของ (x - y) mod m ใน radix r |
| การเชื่อมต่อแบบแยกส่วน | x (str), y (str), m (str), r (int) = 10 | Str: ผลลัพธ์ของ (x * y) mod m ใน radix r |
| การเชื่อมต่อแบบแยกส่วน | a (str), m (str), r (int) = 10 | Str: ผกผันของ mod m ใน radix r หรือพิมพ์ "ผกผันไม่มีอยู่" |