التابع Array.combination
في روبي
يجمِّع التابع combination
عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة n
الممررة إليه ثم يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها. لا يوجد أي ضمان للتنبؤ بترتيب العناصر المجمَّعة المعادة.
إن لم تمرَّر أي كتلة (block
) إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator
.
البنية العامة
combination(n) { |c| block } → ary
combination(n) → Enumerator
المعاملات
n
عدد صحيح يحدد عدد عناصر المصفوفات الفرعية المراد تجميع عناصر المصفوفة المعطاة ضمنها.
القيم المعادة
تعاد المصفوفة نفسها المعطاة بعد تجميع عناصرها بترتيب معين في مصفوفات فرعية طول كل منها متعلق بالقيمة n
المعطاة، أو يعاد كائن من النوع Enumerator
إن لم تعط الكتلة block
.
أمثلة
أمثلة على استخدام التابع combination
:
a = [1, 2, 3, 4]
a.combination(1).to_a #=> [[1],[2],[3],[4]]
a.combination(2).to_a #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
a.combination(3).to_a #=> [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
a.combination(4).to_a #=> [[1,2,3,4]]
a.combination(0).to_a #=> [[]] # one combination of length 0
a.combination(5).to_a #=> [] # no combinations of length 5
انظر أيضًا
- التابع
repeated_combination
: يشبه التابعcombination
باستثناء أنه يمكنه تجميع العناصر مع نفسها (أي تكرار العناصر نفسها). - التابع
permutation
: يعيد كل التبديلات (permutations
) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة منn
عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها. - التابع
repeated_permutation
: يشبه التابعpermutation
باستثناء أنَّه يستطيع إنشاء تبديلات للعناصر مع نفسها (أي تكرار العناصر نفسها) وأنه لا يمكن استدعاؤه دون تمرير عدد العناصر المراد التبديل بينها إليه. - التابع
product
: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه. - التابع
zip
: يحول الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.
مصادر
- قسم التابع combination في الصنف Array في توثيق روبي الرسمي.