PDA

View Full Version : سوال: جایگشت اعداد / حروف / کاراکتر



Mr.Csharp
سه شنبه 25 فروردین 1394, 20:32 عصر
سلام ,
نمیدونم عنوان تا\یک مناسبه یا نه اگه نامناسبه لطفا مدیران خودشون زحمت عوض کردن رو بکشن //

=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
بریم سراغ سوال :لبخند: :

چطوری میشه یه نرم افزار طراحی کرد که وقتی داخل لیست باکس 1 عدد و 1 کاراکتر و 1 حرف (تعداد متغیر ) وارد کنیم داخل یه لیست باکس دیگه خروجی رو بهمون نشون بده و یه خروجی txt برامون بگیره .

مثلا :
1 a ! خروجی هاش اینا هست :
!!!
a!1
!a1
و دیگر خروجی ها

در ضمن جایگشت با تکرار باشه .


=- هیچ اطلاعی در این زمینه ندارم و صمیمانه از دوستان تشکر میکنم بخاطر پاسخگویی:خجالت::قلب:

Javad_raouf
چهارشنبه 26 فروردین 1394, 11:47 صبح
سلام عزیزم برنامش رو نوشتم برات


ListBox lBoxInput = new ListBox();


ListBox lBoxOutPut = new ListBox();
lBoxInput.Items.Add("1");
lBoxInput.Items.Add("2");
lBoxInput.Items.Add("3");
lBoxInput.Items.Add("4");






List<string> lstInput = new List<string>();
foreach (object x in lBoxInput.Items)
lstInput.Add(x.ToString());
int CountPowCount = (int)Math.Pow(lstInput.Count, lstInput.Count);
string[] jayGasht = new string[CountPowCount];
for (int i = 0; i < jayGasht.Length; i++)
jayGasht[i] = "";


for (int j = 0; j < lstInput.Count; j++)
{
int Level = j + 1;
int CounterChanger = CountPowCount / (int)Math.Pow(lstInput.Count , Level);
int ind = 0;
int changer = 0;
for (int i = 0; i < jayGasht.Length; i++)
{
if (changer >= CounterChanger)
{
changer = 0;
ind++;
if (ind >= lstInput.Count)
ind = 0;
}
//if (changer < CounterChanger)
//{
jayGasht[i] += lstInput[ind];
changer++;
//}
}


}
lBoxOutPut.Items.AddRange(jayGasht);
اگر متوجه نشدی سعی کن متوجه بشی و اگه بازم متوجه نشدی بپرس تا برات توضیح بدم:لبخندساده:
البته توضیح دادنش سخته خدا کنه خودت متوجه بشی:اشتباه:

Mr.Csharp
چهارشنبه 26 فروردین 1394, 15:08 عصر
خیلی ممنون ،
دقیقا همون چیزی بود که میخواستم ،
ولی چرا وقتی تعداد کاراکتر ها رو بالا میبرم برنامه ارور میده ؟!؟!

مشکل رم هست ؟ سی پی یو ؟؟ یا برنامه خودش نمیکشه ؟؟؟

Javad_raouf
پنج شنبه 27 فروردین 1394, 08:38 صبح
به قول بچه های اینجا دوست عزیز:کف:
Over Flow میده دیگه یعنی رم نمی کشنه چون تعداد جواب ها میره بالا
شما اگر 4 ورودی بزاری تعداد خروجی میشه 4 به توان 4 که میشه 256
حالا اگه 10 تا ورودی بزاری میشه 10 به توان 10 یعنی 10000000000 یعنی ده میلیارد:اشتباه:

Mr.Csharp
پنج شنبه 27 فروردین 1394, 11:28 صبح
به قول بچه های اینجا دوست عزیز:کف:
Over Flow میده دیگه یعنی رم نمی کشنه چون تعداد جواب ها میره بالا
شما اگر 4 ورودی بزاری تعداد خروجی میشه 4 به توان 4 که میشه 256
حالا اگه 10 تا ورودی بزاری میشه 10 به توان 10 یعنی 10000000000 یعنی ده میلیارد:اشتباه:
خب نمیشه کد ها رو طوری طراخی کرد که کمترین استفاده از رم و بیشترین خروجی رو بدست اوریم ؟

Javad_raouf
پنج شنبه 27 فروردین 1394, 15:26 عصر
نه نمیشه چون الگوریتم O(n) o یعنی بهینه ترین حالت
ببین تعداد جواب وقتی بره بالا شما با هر روشی بری چون بالاخره باید به این تعداد جواب برسی مشکل می خوری دیگه
شما فرض کن اصلا هیچ کد برنامه نویسی یا الگوریتم و محاسبه ای وجود نداره همینجوری در حالت معمول بخوای
10000000000 کاراکتر رو در فضای رم ذخیره کنی چیزی حدود 10 گیگابایت فضا می بره
:لبخند:
البته بازم راه داره ها می تونی مثلا جایگشت ها رو نمایش ندی فقط توی فایل بریزی:خجالت: و یک فایل 10 گیگی خروجی بدی
تازه همین کار رو هم که بکنی بارم تا یک حدی جواب می ده مثلا اگر 12 تا ورودی داشته باشی نزدیک 8 ترابایت فضا لازم داری:قهقهه: این فضا حتی در هارد دیسک هم موجود نیست
از اینا گذشته شما زمان مورد نیاز برای محاسبه اینا رو هم در نظر بگیر:لبخند:

Mr.Csharp
پنج شنبه 27 فروردین 1394, 16:07 عصر
نه نمیشه چون الگوریتم O(n) o یعنی بهینه ترین حالت
ببین تعداد جواب وقتی بره بالا شما با هر روشی بری چون بالاخره باید به این تعداد جواب برسی مشکل می خوری دیگه
شما فرض کن اصلا هیچ کد برنامه نویسی یا الگوریتم و محاسبه ای وجود نداره همینجوری در حالت معمول بخوای
10000000000 کاراکتر رو در فضای رم ذخیره کنی چیزی حدود 10 گیگابایت فضا می بره
:لبخند:
البته بازم راه داره ها می تونی مثلا جایگشت ها رو نمایش ندی فقط توی فایل بریزی:خجالت: و یک فایل 10 گیگی خروجی بدی
تازه همین کار رو هم که بکنی بارم تا یک حدی جواب می ده مثلا اگر 12 تا ورودی داشته باشی نزدیک 8 ترابایت فضا لازم داری:قهقهه: این فضا حتی در هارد دیسک هم موجود نیست
از اینا گذشته شما زمان مورد نیاز برای محاسبه اینا رو هم در نظر بگیر:لبخند:
:گریه::اشتباه::اشتباه:
هدفم از این ساختن Password List بود :لبخند::لبخند:
پس میتونم یه فایل متنی خروجی بگیرم ازش :لبخند:
==========================================

حالا همین کد ها بدون جایگذاری چطوری میشه ؟

Javad_raouf
پنج شنبه 27 فروردین 1394, 16:14 عصر
واسه همینه که می گن پسووردای طولانی بزارید دیگه:لبخند:
به نظر من برو از رو دستش نگاه کن ببین پسووردش چیه اینجوری راحت تره:چشمک: