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