الفرق بين المراجعتين لصفحة: «Ruby/Array/repeated combination»

من موسوعة حسوب
< Ruby‏ | Array
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يشبه التابع <code>repeated_combination</code> التابع [[Ruby/Array/combination | <code>combination</code>]] باستثناء أنه يمكنه تجميع العناصر مع نفسها (أي تكرار العناصر نفسها). لا يوجد أي ضمان للتنبؤ بترتيب العناصر المجمَّعة المعادة.
يشبه التابع <code>repeated_combination</code> التابع<nowiki/>[[Ruby/Array/combination | <code>combination</code>]] باستثناء أنه يمكنه تجميع العناصر مع نفسها (أي تكرار العناصر نفسها). لا يوجد أي ضمان للتنبؤ بترتيب العناصر المجمَّعة المعادة.


إن لم تمرَّر أي كتلة (<code>block</code>) إلى هذا التابع، فسيعيد كائنًا من النوع <code>[[Ruby/Enumerator|Enumerator]]</code>.
إن لم تمرَّر أي كتلة (block) إلى هذا التابع، فسيعيد كائنًا من النوع <code>[[Ruby/Enumerator|Enumerator]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> repeated_combination(n) { |c| block } → ary
<syntaxhighlight lang="ruby">repeated_combination(n) { |c| block } → ary
repeated_combination(n) → Enumerator
repeated_combination(n) → Enumerator
  </syntaxhighlight>
  </syntaxhighlight>
سطر 18: سطر 18:
==أمثلة==
==أمثلة==
أمثلة على استخدام التابع <code>repeated_combination</code>:
أمثلة على استخدام التابع <code>repeated_combination</code>:
<syntaxhighlight lang="ruby"> a = [1, 2, 3]
<syntaxhighlight lang="ruby">a = [1, 2, 3]
a.repeated_combination(1).to_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(2).to_a  #=> [[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]]
سطر 29: سطر 29:
  </syntaxhighlight>
  </syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* التابع [[Ruby/Array/combination | <code>combination</code>]]: يُجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة <code>n</code> الممررة إليه ثمَّ يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
* التابع<nowiki/>[[Ruby/Array/combination | <code>combination</code>]]: يُجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة <code>n</code> الممررة إليه ثمَّ يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
* التابع [[Ruby/Array/permutation | <code>permutation</code>]]: يعيد كل التبديلات (<code>permutations</code>) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من <code>n</code> عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.
* التابع<nowiki/>[[Ruby/Array/permutation | <code>permutation</code>]]: يعيد كل التبديلات (permutations) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من <code>n</code> عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.
* التابع [[Ruby/Array/repeated_permutation | <code>repeated_permutation</code>]]: عندما يُستدعى التابع [[Ruby/Array/repeated_permutation | <code>repeated_permutation</code>]] مع كتلة برمجية، فسيعيد كل التبديلات <code>permutations</code> (مع التكرار) والمكونة من <code>n</code> عنصر من المصفوفة، ثم يعيد المصفوفة نفسها. لا يوجد ضمانة لمعرفة ترتيب تلك التبديلات.
* التابع<nowiki/>[[Ruby/Array/repeated_permutation | <code>repeated_permutation</code>]]: عندما يُستدعى التابع<nowiki/>[[Ruby/Array/repeated_permutation | <code>repeated_permutation</code>]] مع كتلة برمجية، فسيعيد كل التبديلات <code>permutations</code> (مع التكرار) والمكونة من <code>n</code> عنصر من المصفوفة، ثم يعيد المصفوفة نفسها. لا يوجد ضمانة لمعرفة ترتيب تلك التبديلات.
==مصادر==
==مصادر==
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-repeated_combination صفحة التابع Array.repeated_combination في التوثيق الرسمي للغة ruby.]
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-repeated_combination صفحة التابع Array.repeated_combination في التوثيق الرسمي للغة ruby.]

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

مصادر