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

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

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

مصادر