logo

التقليب والجمع في بايثون

في هذا البرنامج التعليمي، سوف نتعلم كيفية الحصول على التقليب والجمع بين بيانات معينة باستخدام بايثون. سوف نستخدم حزمة Python المضمنة للعثور على التقليب والجمع بين رقم معين.

التقليب والجمع جزء أساسي في الرياضيات. بايثون يوفر مكتبة itertools التي تحتوي على وظائف مدمجة لحساب التقليب والجمع.

استيراد المكتبة المطلوبة

لحساب التقليب والجمع، نحتاج إلى استيراد مكتبة itertools. يمكننا استيراده باستخدام الأمر أدناه.

 import itertools 

سيقوم البيان أعلاه باستيراد مكتبة itertools ويشكل مسارًا لوظيفتها.

الآن، نحن بحاجة إلى إنشاء قائمة التسلسل كمدخل. ستعيد قائمة المدخلات هذه الصف الذي يتكون من التقليب والجمع. يمكننا أيضًا ضبط طول التقليب والجمع.

التقليب

التقليب هو ترتيب لمجموعة يكون فيها الترتيب مهمًا. توفر وحدة Python itertools يحمل في ثناياه عوامل التقليب () طريقة العثور على التقليب. دعونا نفهم المثال التالي.

مثال -

 from itertools import permutations seq = permutations(['1','2','3']) print(seq) for p in list(seq): print(p) 

انتاج:

تاريخ إصدار أندرويد
 ('1', '2', '3') ('1', '3', '2') ('2', '1', '3') ('2', '3', '1') ('3', '1', '2') ('3', '2', '1') 

في الكود أعلاه، قمنا باستيراد وحدة itertools. اتصلنا ب التقليب () الطريقة التي تأخذ السلسلة كوسيطة وتوفر كائن itertools. من الضروري استخدام حلقة للحصول على كل التقليب.

لنأخذ مجموعتين من التقليب.

مثال - 2

 from itertools import permutations seq = permutations(['A','B']) for p in list(seq): print(p) 

انتاج:

 ('A', 'B') ('A', 'C') ('B', 'C') 

مثال - 3

 from itertools import permutations list1 = [1, 2, 3, 4] seq = permutations(list1) print(seq) for p in list(seq): print(p) 

انتاج:

 (1, 2, 3, 4) (1, 2, 4, 3) (1, 3, 2, 4) (1, 3, 4, 2) (1, 4, 2, 3) (1, 4, 3, 2) (2, 1, 3, 4) (2, 1, 4, 3) (2, 3, 1, 4) (2, 3, 4, 1) (2, 4, 1, 3) (2, 4, 3, 1) (3, 1, 2, 4) (3, 1, 4, 2) (3, 2, 1, 4) (3, 2, 4, 1) (3, 4, 1, 2) (3, 4, 2, 1) (4, 1, 2, 3) (4, 1, 3, 2) (4, 2, 1, 3) (4, 2, 3, 1) (4, 3, 1, 2) (4, 3, 2, 1) 

في الكود أعلاه، حصلنا على مجموعة من الأعداد الصحيحة المتعددة.

التقليب من طول ثابت

يمكننا حساب التقليب لمجموعة الطول الثابت حيث نأخذ فقط عددًا محددًا من كل تبديل عنصر. دعونا نفهم المثال التالي.

مثال -

 from itertools import permutations seq = permutations(['H', 'e', 'l', 'l', 'o'], 3) for p in list(seq): print(p) 

انتاج:

 ('H', 'e') ('H', 'l') ('H', 'l') ('H', 'o') ('e', 'H') ('e', 'l') ('e', 'l') ('e', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('o', 'H') ('o', 'e') ('o', 'l') ('o', 'l') 

في الكود أعلاه، قمنا بحساب التقليب الثابت عن طريق تمرير الطول باعتباره اثنين.

مزيج من السلسلة

المجموعة عبارة عن مجموعة من العناصر التي لا يهم ترتيبها. بايثون com.itertools توفر الوحدة مزيج() طريقة لحساب مجموعة من البيانات المعطاة. يمكننا حساب مجموعة من السلسلة. دعونا نفهم المثال التالي.

مثال -

 import itertools seq = 'ABC' com_seq = itertools.combinations(seq, 2) for c in com_seq: print(c) 

انتاج:

 ('A', 'B') ('A', 'C') ('B', 'C') 

الجمع مع الاستبدال

تتكون وحدة itertools من طريقة أخرى تسمى combin_with_replacement() والذي يأخذ في الاعتبار مجموعة الرقم نفسه أيضًا. دعونا نفهم مثالها.

مزيج من مجموعة رقمية

 from itertools import combinations_with_replacement com = combinations_with_replacement(['J', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't'], 2) #Print the list of combinations for c in list(com): print(c) 

انتاج:

 ('J', 'J') ('J', 'a') ('J', 'v') ('J', 'a') ('J', 't') ('J', 'p') ('J', 'o') ('J', 'i') ('J', 'n') ('J', 't') ('a', 'a') ('a', 'v') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('v', 'v') ('v', 'a') ('v', 't') ('v', 'p') ('v', 'o') ('v', 'i') ('v', 'n') ('v', 't') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('t', 't') ('t', 'p') ('t', 'o') ('t', 'i') ('t', 'n') ('t', 't') ('p', 'p') ('p', 'o') ('p', 'i') ('p', 'n') ('p', 't') ('o', 'o') ('o', 'i') ('o', 'n') ('o', 't') ('i', 'i') ('i', 'n') ('i', 't') ('n', 'n') ('n', 't') ('t', 't') 

مزيج من مجموعة رقمية

إذا كان الإدخال المحدد بالترتيب المفرز، فسيتم إرجاع المجموعات المركبة بالترتيب المفرز. دعونا نفهم المثال التالي.

مثال -

 import itertools v = [1, 2, 3, 4] com_seq = itertools.combinations_with_replacement(v, 3) for i in com_seq: print(i) 

انتاج:

 (1, 1, 1) (1, 1, 2) (1, 1, 3) (1, 1, 4) (1, 2, 2) (1, 2, 3) (1, 2, 4) (1, 3, 3) (1, 3, 4) (1, 4, 4) (2, 2, 2) (2, 2, 3) (2, 2, 4) (2, 3, 3) (2, 3, 4) (2, 4, 4) (3, 3, 3) (3, 3, 4) (3, 4, 4) (4, 4, 4) 

في هذا البرنامج التعليمي، ناقشنا وحدة itertools للعثور على التقليب والجمع بين البيانات المعطاة باستخدام برنامج Python النصي.