التابع 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عنصر من المصفوفة، ثم يعيد المصفوفة نفسها. لا يوجد ضمانة لمعرفة ترتيب تلك التبديلات.