لفهم كيفية طباعة جميع المصفوفات المختلفة التي تحتوي على m قيمة -1 و n-m قيمة 1، يجب أولاً أن نفهم كيفية توليد هذه المصفوفات. لنفترض أن لدينا مثلاً n = 4 و m = 2. لنقم بطباعة جميع الحالات التي تحتوي على 2 قيمة -1 و 2 قيمة 1:
-
بما أننا نريد طباعة جميع الحالات، يجب علينا النظر في كل الاحتمالات. لنبدأ بإنشاء مصفوفة فارغة بحجم n.
-
نضع قيمة -1 في أول اثنين من المواقع (من اليسار)، ونضع 1 في الاثنتين الأخيرتين.
-
ثم، نقوم بتبديل القيم بحيث نحصل على جميع الاحتمالات.
لهذا الغرض، يمكننا استخدام الرمز التالي في Python:
pythonfrom itertools import permutations
def print_arrays(n, m):
arr = [-1] * m + [1] * (n - m)
perms = set(permutations(arr))
for perm in perms:
print(list(perm))
n = 4
m = 2
print_arrays(n, m)
هذا الكود ينشئ جميع الاحتمالات الممكنة للمصفوفات التي تحتوي على 2 قيمة -1 و 2 قيمة 1. يتم طباعة هذه الاحتمالات باستخدام حلقة for.
المزيد من المعلومات
لفهم المزيد حول كيفية طباعة جميع المصفوفات التي تحتوي على m قيمة -1 و n-m قيمة 1، يمكننا استكشاف الفكرة بمزيد من التفصيل.
عندما نريد طباعة جميع هذه الحالات، نحتاج إلى استخدام فكرة الاحتمالات المختلفة لتحقيق ذلك. بمعنى آخر، إذا كان لدينا m = 2 و n = 4، فإن لدينا 4 احتمالات مختلفة:
- [-1, -1, 1, 1]
- [-1, 1, -1, 1]
- [-1, 1, 1, -1]
- [1, -1, -1, 1]
- [1, -1, 1, -1]
- [1, 1, -1, -1]
لتوليد هذه الاحتمالات، يمكننا استخدام التكرارات (permutations) والتي تولد جميع الترتيبات المختلفة للعناصر. في كود Python، يمكننا كتابة الشيفرة التالية:
pythonfrom itertools import permutations
def print_arrays(n, m):
arr = [-1] * m + [1] * (n - m)
perms = set(permutations(arr))
for perm in perms:
print(list(perm))
n = 4
m = 2
print_arrays(n, m)
هذا الكود يستخدم التكرارات لإنشاء جميع الاحتمالات الممكنة للمصفوفات التي تحتوي على 2 قيمة -1 و 2 قيمة 1. يقوم بطباعة هذه الاحتمالات باستخدام حلقة for.