التابع Array.product في روبي

من موسوعة حسوب
< Ruby‏ | Array
مراجعة 08:59، 3 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يوزِّع التابع product عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.

طول المصفوفة الناتجة يساوي جداء طول المصفوفة التي استُدعيت مع التابع بأطوال المصفوفات المُمرّرة إليه.

عندما يُستدعى التابع product مع كتلة برمجية، فسيُعِدّ التابع كل التبديلات الممكنة بين عناصر المصفوفات ثم يعيد المصفوفة نفسها.

البنية العامة

 product(other_ary, ...)  new_ary
product(other_ary, ...) { |p| block }  ary

المعاملات

other_ary

مصفوفة يراد توزيع عناصر المصفوفة المعطاة على عناصرها.

مصفوفات أخرى يراد توزيع عناصر المصفوفة المعطاة على عناصرها.

القيم المعادة

تعاد مصفوفة جديدة تحوي المصفوفات الناتجة عن توزيع عناصر المصفوفة المعطاة على عناصر المصفوفة other_ary والمصفوفات الأخرى الممررة، أو تعاد المصفوفة نفسها المعطاة بعد إجراء عملية التوزيع إن أعطيت الكتلة block.

أمثلة

أمثلة على استخدام التابع product:

 [1,2,3].product([4,5])     #=> [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]
[1,2].product([1,2])       #=> [[1,1],[1,2],[2,1],[2,2]]
[1,2].product([3,4],[5,6]) #=> [[1,3,5],[1,3,6],[1,4,5],[1,4,6],
                          #     [2,3,5],[2,3,6],[2,4,5],[2,4,6]]
[1,2].product()            #=> [[1],[2]]
[1,2].product([])          #=> []

انظر أيضًا

  • التابع combination: يجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة n الممررة إليه ثم يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
  • التابع permutation: يعيد كل التبديلات (permutations) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من n عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.

مصادر