البرمجة

طريقة طباعة جميع التركيبات في C++

كيفية طباعة جميع التركيبات في لغة البرمجة C++؟

لطباعة جميع التركيبات الممكنة من قائمة أسماء، يمكنك استخدام الطريقة التالية في C++.

أولاً، يمكنك إنشاء قائمة بأسماء الأشخاص الأولى التي تريدها، ثم استخدم دالة لتوليد جميع التركيبات الممكنة.

هنا مثال على كيفية فعل ذلك:

cpp
#include #include #include #include // دالة لطباعة قائمة من الأسماء void printNames(const std::vector& names) { for (const auto& name : names) { std::cout << name << " "; } std::cout << std::endl; } int main() { // قائمة الأسماء الأولية std::vector initialNames = {"Alice", "Bob", "Charlie", "David", "Eve", "Frank", "Grace", "Helen", "Ivy", "Jack"}; // طباعة الأسماء الأولية std::cout << "Initial names:" << std::endl; printNames(initialNames); // حساب عدد التركيبات الممكنة int totalNames = 1000; int initialSize = initialNames.size(); int permutations = 1; for (int i = 0; i < initialSize; ++i) { permutations *= totalNames - i; permutations /= i + 1; if (permutations >= totalNames) { break; } } // إذا كان عدد التركيبات أكبر من 1000، نقوم بطباعة تحذير if (permutations > totalNames) { std::cout << "Warning: The number of permutations is greater than 1000." << std::endl; } // توليد التركيبات الممكنة std::vector> allPermutations; allPermutations.push_back(initialNames); for (int i = 1; i < permutations; ++i) { std::next_permutation(initialNames.begin(), initialNames.end()); allPermutations.push_back(initialNames); } // طباعة بعض التركيبات الممكنة std::cout << "Some permutations:" << std::endl; for (int i = 0; i < std::min(permutations, 10); ++i) { printNames(allPermutations[i]); } return 0; }

هذا البرنامج يستخدم الفئة std::next_permutation من مكتبة لتوليد جميع التركيبات الممكنة من الأسماء الأولية.

المزيد من المعلومات

بالتأكيد! في هذا البرنامج، نقوم بإنشاء قائمة بأسماء الأشخاص الأولية ونقوم بطباعتها. ثم، نحسب عدد التركيبات الممكنة باستخدام الرياضيات، حيث نحتاج إلى معرفة كم عدد الطرق الممكنة لاختيار 1000 اسم من بين الأسماء الأولية. بعد ذلك، نستخدم دالة std::next_permutation لتوليد التركيبات الممكنة.

الكود يقوم بأيضاً بطباعة بعض التركيبات الممكنة، حيث تم استخدام std::min(permutations, 10) لطباعة أقلها بين 10 تركيبات أو عدد التركيبات الممكنة إذا كانت أقل من 10.

لاحظ أنه في حالة كان عدد التركيبات الممكنة أكبر من 1000، يتم طباعة تحذير.

هذا البرنامج يوضح كيفية استخدام std::next_permutation لتوليد التركيبات الممكنة من قائمة من الأسماء.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر