مجموعات الفصل تنفذ 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