"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني إنشاء جميع المجموعات الفريدة من 5 أرقام من مجموعة من 7 أرقام (1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7) باستخدام PHP؟

كيف يمكنني إنشاء جميع المجموعات الفريدة من 5 أرقام من مجموعة من 7 أرقام (1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7) باستخدام PHP؟

نشر في 2025-03-25
تصفح:792

How can I generate all unique combinations of 5 numbers from an array of 7 numbers (1, 2, 3, 4, 5, 6, 7) using PHP?

الهدف هو العثور على جميع المجموعات الممكنة من 5 أرقام من تلك الصفيف. يجب أن تكون كل مجموعة فريدة من نوعها ، مما يعني أنه لا يُسمح بتكرار. على سبيل المثال ، (1،2،3،4،5) و (5،4،3،2،1) يعتبران نفس المجموعة. إليك كيفية عملها:

مجموعات الفصل تنفذ ITERATAR { محمية $ c = null ؛ // مزيج من الأرقام محمية $ s = null ؛ // صفيف المصدر محمية $ n = 0 ؛ // عدد العناصر في الصفيف محمية $ k = 0 ؛ // عدد العناصر في كل مجموعة محمية $ pos = 0 ؛ // الموضع الحالي للمؤلف وظيفة __construct ($ s ، $ k) { // تهيئة خصائص الفصل if (is_array ($ s)) { $ this-> s = array_values ​​($ s) ؛ $ this-> n = count ($ this-> s) ؛ } آخر { $ this-> s = (string) $ s ؛ $ this-> n = strlen ($ this-> s) ؛ } $ this-> k = $ k ؛ $ this-> rewind () ؛ } // إرجاع المفتاح الحالي مفتاح الوظيفة () { إرجاع $ this-> pos ؛ } // إرجاع القيمة الحالية وظيفة Current () { $ r = array () ؛ لـ ($ i = 0 ؛ $ i k ؛ $ i) $ r [] = $ this-> s [$ this-> c [$ i]] ؛ إرجاع is_array ($ this-> s)؟ $ r: تنفجر ('' ، $ r) ؛ } // انتقل إلى المجموعة التالية وظيفة Next () { إذا ($ this-> _ next ()) $ this-> pos ؛ آخر $ this-> pos = -1 ؛ } // الترجيع إلى المزيج الأول وظيفة rewind () { $ this-> c = range (0 ، $ this-> k) ؛ $ this-> pos = 0 ؛ } // تحقق مما إذا كان التكرار صالحًا (في موضع صالح) وظيفة صالحة () { إرجاع $ this-> pos> = 0 ؛ } // انتقل إلى المزيج التالي (الوظيفة الداخلية) الدالة المحمية _next () { $ i = $ this-> k - 1 ؛ بينما ($ i> = 0 & amp ؛ & amp ؛ $ this-> c [$ i] == $ this-> n-$ this-> k $ i) $ i-- ؛ إذا ($ i c [$ i] ؛ بينما ($ i k - 1) $ this-> c [$ i] = $ this-> c [$ i-1] 1 ؛ العودة صحيح. } } // قم بإنشاء كائن مجموعات للمصفوفة المحددة وعدد العناصر لكل مجموعة مجموعات $ = مجموعات جديدة ("1234567" ، 5) ؛ // تكرار على جميع المجموعات الممكنة وطباعتها foreach (مجموعات $ كسلسلة فرعية $) echo $ substring ، '' ؛

ينتج هذا الرمز الإخراج التالي:

34567

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3