كيفية طباعة جميع التركيبات في لغة البرمجة C++؟
لطباعة جميع التركيبات الممكنة من قائمة أسماء، يمكنك استخدام الطريقة التالية في C++.
-
حساب المتوسط والتباين في C++: تصحيح الأخطاء29/02/2024
-
فهم واجهة وتنفيذ في C++15/03/2024
-
فهم استخدام البناء في لغة البرمجة C++11/02/2024
أولاً، يمكنك إنشاء قائمة بأسماء الأشخاص الأولى التي تريدها، ثم استخدم دالة لتوليد جميع التركيبات الممكنة.
هنا مثال على كيفية فعل ذلك:
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
لتوليد التركيبات الممكنة من قائمة من الأسماء.