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