ورود

View Full Version : سوال: ترکیب چند کلمه با هم به طوریکه همه حالات را شامل شود



Ebrahim_Rayaneh
سه شنبه 05 اسفند 1393, 07:37 صبح
چند تا کلمه داریم میخوایم با هم ترکیبشون بکنیم بزارید یه مثال بزنم تا مطلب روشن شه:



a
b
c
d



در دور اول ترکیب حروف فوق باید بدین صورت باشد :
ab, ac, aad
ba, bc, bd
ca, cb, cd

یعنی کلیه حروف دو به دو باید باهم ترکیب شود و در کنار هم قرار می گیرند.

در دور دوم دو حرف را انتخاب کرده (در حالیکه باهمدیگه هم در حال ترکیب شدن و جابجایی هستند ) با حرف سوم بعدی ترکیب شوند یعنی در در مثال فوق بدین صورت درمیاد:
abc, bac, abd, bad
bca, cba, cda, dca
cda, dca, cdb, dcb

در دور سوم سه تا حرف انتخاب کرده (در حالیکه باهمدیگه هم در حال ترکیب شدن و جابجایی هستند ) با حرف چهارم بعدی ترکیب شوند یعنی در در مثال فوق بدین صورت درمیاد:
abcd, acbd, cabd, cbad

*** اگر تعداد حالات n حالت باشد ، اگر دوستان برای این مساله قطعه کدی (فرقی نمی کنه با چه زبانی اما اگه با خانواده c باشه بهتره مخصوصا با c# ) مرحمت بفرمایند مچکرم خواهم شد. :لبخندساده:

rahnema1
چهارشنبه 06 اسفند 1393, 10:01 صبح
سلام
خدمت شما:

using System;

namespace tarkib
{
class Program
{
static void GeneratePermutations(String dic, string perms , int len)
{
if (perms.Length == len )
{
Console.WriteLine(perms);
return;
}

for (int i = 0; i < dic.Length ; i++)
{
GeneratePermutations(dic.Remove(i, 1), perms + dic[i].ToString(), len);
}
}
public static void Main(string[] args)
{
GeneratePermutations ("abcde" ,string.Empty, 3);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}