PyAlgebraLib
v1.0.0
برنامج Python البسيط لأداء عمليات الجبر باستخدام خوارزميات فعالة مثل خوارزمية Karatsuba للضرب أو خوارزمية الإقليدية الممتدة للقسمة المشتركة العظيمة (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 مع النتيجة (s) ، ابحث في مستندات الوظيفة المحددة لمزيد من المعلومات.
مثال:
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
| اسم الوظيفة | مدخل | الإخراج |
|---|---|---|
| إزالة readeDeadzeros | أ (شارع) | STR: السلسلة المعدلة مع إزالة جميع الأصفار الرائدة |
| الكبرى | x (str) ، y (str) | Bool: صحيح إذا كان x أكبر من أو يساوي y ، خطأ خلاف ذلك |
| قسمة | x (str) ، y (str) ، r (int) = 10 | STR: حاصل X مقسومًا على Y ، معبراً عنه في Radix R |
| elementaryadd | x (str) ، y (str) ، c (str) ، r (int) = 10 | tuple: (النتيجة (str) ، حمل (str)) |
| elementarysub | x (str) ، y (str) ، c (str) ، r (int) = 10 | tuple: (النتيجة (str) ، حمل (str)) |
| exlementarymult | 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 |
| exteuclid | 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 |
| modularMultiplication | x (str) ، y (str) ، m (str) ، r (int) = 10 | STR: نتيجة (x * y) mod m في radix r |
| modularinversion | a (str) ، m (str) ، r (int) = 10 | STR: عكسي من mod m في radix r ، أو المطبوعات "عكسية غير موجودة" |