۰
subtitle
ارسال: #۱
  
الگوریتم کدهای ده دهی
سلام!
میشه تو این سوال کمکم کنید؟
الگوریتمی بنویسید که تمام کدهای ده دهی که شامل ۰و۱۱و۱۲و۲۱و۲۲ نیست؟؟
(یه فایلی رو هم پیوست کردم )
ببخشد شامل اون اعداد نیس رو تولیــــــــــــــــــــــــــــــــد کند!
میشه تو این سوال کمکم کنید؟
الگوریتمی بنویسید که تمام کدهای ده دهی که شامل ۰و۱۱و۱۲و۲۱و۲۲ نیست؟؟
(یه فایلی رو هم پیوست کردم )
ببخشد شامل اون اعداد نیس رو تولیــــــــــــــــــــــــــــــــد کند!
۰
ارسال: #۲
  
الگوریتم کدهای ده دهی
کســـــــــــــــــــــــــــــــــــــــــــــــــــــــــی ایـــــــــــــــنجـــــــــــــــــــــــــــــــــــــــا نـــــــــــــــــــــــــــــــــــــیست؟
۰
ارسال: #۳
  
الگوریتم کدهای ده دهی
کد:
c(n)
{
for (k=0;k<=n;k++)
for (i=10^k-1;i<10^(k+1)-1;i++)
if ({۰و۱۱و۱۲و۲۱و۲۲} not in i) cout <<i;
}
۰
ارسال: #۴
  
RE: الگوریتم کدهای ده دهی
اینم یه جواب دیگه واسه این الگوریتم که بازگشتیه!
[tex]C(int n,int x ,int y )\{[/tex]
[tex]if (n = =0) cout << x[/tex]
[tex]if (n > 0)\{[/tex]
[tex]for(int i = 1;i<= 9;i )\{[/tex]
[tex]if (y < 2\_ \&\&\_ i > 2)C( n - 1, x * 10 i, i)[/tex]
[tex]if (y > 2) C( n - 1, x * 10 i, i)[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
که x مقدار جاری را نگه میدارد!
و y عدد تولید شده قبلی برای حفظ درستی الگوریتم!
این الگوریتم باید با مقداری مثل [tex]C(num,0,9)[/tex] فراخوانی کنیم که num تعداد ارقام میباشد!
این الگوریتم اینطور کار میکنه که در هر مرحله اگر شکل صحیح جواب حفظ شود ادامه میده در غیر اینصورت مقدار بعدی را چک میکند!
البته ممکنه از لحاظ Syntax مشکل داشته باشه اما از لحاظ الگوریتمی مطمئن هست!
[tex]C(int n,int x ,int y )\{[/tex]
[tex]if (n = =0) cout << x[/tex]
[tex]if (n > 0)\{[/tex]
[tex]for(int i = 1;i<= 9;i )\{[/tex]
[tex]if (y < 2\_ \&\&\_ i > 2)C( n - 1, x * 10 i, i)[/tex]
[tex]if (y > 2) C( n - 1, x * 10 i, i)[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
که x مقدار جاری را نگه میدارد!
و y عدد تولید شده قبلی برای حفظ درستی الگوریتم!
این الگوریتم باید با مقداری مثل [tex]C(num,0,9)[/tex] فراخوانی کنیم که num تعداد ارقام میباشد!
این الگوریتم اینطور کار میکنه که در هر مرحله اگر شکل صحیح جواب حفظ شود ادامه میده در غیر اینصورت مقدار بعدی را چک میکند!
البته ممکنه از لحاظ Syntax مشکل داشته باشه اما از لحاظ الگوریتمی مطمئن هست!
۰
ارسال: #۵
  
الگوریتم کدهای ده دهی
وای خدا !!!
مرسی مرسی مرسی !
واقعا متشکرم ازتون!
پر رو شدم!!!
میشه تو اینم کمکم کنید؟
"الگوریتمی بنویسید که تمام کدهای با ارقام ۰ و۱و۲ ک شامل دو صفر کنار هم یا دو یک کنار هم نباشد را تولید کند!"
بازم ممنونم ازتون!
مرسی مرسی مرسی !
واقعا متشکرم ازتون!
پر رو شدم!!!
میشه تو اینم کمکم کنید؟
"الگوریتمی بنویسید که تمام کدهای با ارقام ۰ و۱و۲ ک شامل دو صفر کنار هم یا دو یک کنار هم نباشد را تولید کند!"
بازم ممنونم ازتون!
۰
ارسال: #۶
  
الگوریتم کدهای ده دهی
چون عشق بازگشت پذیر هستید!!!
//note1 یعنی چنانچه مقداری تعیین نشد مقدار پیشفرض منفی یک را بگیر (با عضوی خارج از مجموعه اعداد چاپ)
//**note2
//{۰,۱,۲}-{z} معنی آن این هست که اعداد مجموعه به جز z را چاپ کن
راستی این در کد اول شما یعنی چی؟
الگوریتم اول خودتان را با زبان سی پلاس پلاس می توانید پیاده سازی کنید؟
مخصوصا ترکیب شدن این cout ها را!!!
کد:
C (n,z=-1) //*note1
{
If n=1 then cout <<{0,1,2} –{z} //**note2
If n>1 then
{
Cout << 0c(n-1,0)
Cout << 1c(n-1,1)
Cout << 2c(n-1)
}
}
//note1 یعنی چنانچه مقداری تعیین نشد مقدار پیشفرض منفی یک را بگیر (با عضوی خارج از مجموعه اعداد چاپ)
//**note2
//{۰,۱,۲}-{z} معنی آن این هست که اعداد مجموعه به جز z را چاپ کن
کد:
for {i=0;i<3;i++)
if (i!=z) then cout <<i;
راستی این در کد اول شما یعنی چی؟
کد:
cout <<0,1
...
Cout << 1c(n-1)
الگوریتم اول خودتان را با زبان سی پلاس پلاس می توانید پیاده سازی کنید؟
مخصوصا ترکیب شدن این cout ها را!!!
ارسال: #۷
  
الگوریتم کدهای ده دهی
پیاده سازیشو بلد نیستم ولی ازین ایده استفاده کرده بودم برا نوشتنش!
اینو یه نگاه بندازید بیزحمت!
ببخشید!
من تازه شرو کردم به بررسی جواب ها !
متاسفانه اولین جوابی که برام نوشتید رو متوجه نمیشم!
اگ اگ اگ اگ اگ اگ براتون امکانش هست یه توضیح کوچولو هم بدید!
اینو یه نگاه بندازید بیزحمت!
ببخشید!
من تازه شرو کردم به بررسی جواب ها !
متاسفانه اولین جوابی که برام نوشتید رو متوجه نمیشم!
اگ اگ اگ اگ اگ اگ براتون امکانش هست یه توضیح کوچولو هم بدید!
۰
ارسال: #۸
  
الگوریتم کدهای ده دهی
الگوریتم اول
برای ساخت عدد n رقمی از به توان رساندن ۱۰ به قوه nاستفاده می کند
مثلا ۲ رقمی :
i از ۱۰ تا ۹۹ شمارش می کند به شرطی که ترکیبهایی که قرار نیست چاپ شوند در عدد وجود نداشت عدد را چاپ می کند.
////////////////////
الگوریتم دوم
اگه n یک بود اعداد ۰ تا ۲ چاپ می کند
اگه n بیشتر از یک بود اعداد ۰ تا ۲ را اول چاپ می کند و در ادامه تابع را با یکی کمتر (و اطلاع به تابع که رقم قبلی صفر یا یک بوده که دوباره تابع پشت سر هم چاپ نکند) صدا می زند.
در cout های تو در توی برای پیاده سازیش که شکل خروجی آن طوری شود که انتظار دارید شایید از کل الگوریتم شما مشکل تر شود
۱ c(3)==1111و۱۱۰۰و۱۱۰۱و۱۱۱۰و۱۰۱۱و۱۰۱۰و۱۰۰۱
۱c(3) را بسط بدید که یک ها سر جای خود باشند
اگه مستقیم چاپ کنید احتمالا شما بایید به جلو و عقب خط بروید و کارکترها را جابه جا کنید که به محل مناسب چاپ برسید. (پیاده سازی این کار خودش می تواند قصه ای باشد)
برای ساخت عدد n رقمی از به توان رساندن ۱۰ به قوه nاستفاده می کند
مثلا ۲ رقمی :
i از ۱۰ تا ۹۹ شمارش می کند به شرطی که ترکیبهایی که قرار نیست چاپ شوند در عدد وجود نداشت عدد را چاپ می کند.
////////////////////
الگوریتم دوم
اگه n یک بود اعداد ۰ تا ۲ چاپ می کند
اگه n بیشتر از یک بود اعداد ۰ تا ۲ را اول چاپ می کند و در ادامه تابع را با یکی کمتر (و اطلاع به تابع که رقم قبلی صفر یا یک بوده که دوباره تابع پشت سر هم چاپ نکند) صدا می زند.
در cout های تو در توی برای پیاده سازیش که شکل خروجی آن طوری شود که انتظار دارید شایید از کل الگوریتم شما مشکل تر شود
۱ c(3)==1111و۱۱۰۰و۱۱۰۱و۱۱۱۰و۱۰۱۱و۱۰۱۰و۱۰۰۱
۱c(3) را بسط بدید که یک ها سر جای خود باشند
اگه مستقیم چاپ کنید احتمالا شما بایید به جلو و عقب خط بروید و کارکترها را جابه جا کنید که به محل مناسب چاپ برسید. (پیاده سازی این کار خودش می تواند قصه ای باشد)
ارسال: #۹
  
الگوریتم کدهای ده دهی
الان تو دلتون میگید این دختر عجب گـــــــــــــــــــــیریه هاااااااااااا
این سوال آخرمه به جون روفی!
ایشالا یه جوری جبران کنم هرچند شما نیاز ندارید به کمک کسی!
"الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"
این سوال آخرمه به جون روفی!
ایشالا یه جوری جبران کنم هرچند شما نیاز ندارید به کمک کسی!
"الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"
۰
ارسال: #۱۰
  
الگوریتم کدهای ده دهی
(۱۱ آذر ۱۳۹۱ ۰۷:۲۶ ب.ظ)روفی نوشته شده توسط: الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"همون الگوریتم اولی را که نوشتم را این جوریش کن
کد:
if ({11} not in i) cout <<i;
راستی اصلا به الگوریتم هایی که من نوشتم اعتماد نکن چون من اصلا درس طراحی الگوریتم پاس نکردم!!!(رشته لیسانس من یکی از گرایشهای مهندسی برق بوده)
و ممکن هست اصلا درست نباشد!!!
الگوریتم اول را خودتان نوشتید یا استادتان؟
۰
ارسال: #۱۱
  
الگوریتم کدهای ده دهی
اولی رو فقط تونستم خودم بنویسم که به استاد نشون دادم گف قابل قبوله!
یک دنیــــــــــــــــــــــــــا ممنونم ازتون!
یک دنیــــــــــــــــــــــــــا ممنونم ازتون!
۰
ارسال: #۱۲
  
الگوریتم کدهای ده دهی
(۱۱ آذر ۱۳۹۱ ۰۷:۳۴ ب.ظ)a.hooshmand نوشته شده توسط: الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"یا با تغییر برنامه دوم.
کد:
C (n,flag=false)
{
If n=1 then
for (i=0;i<10;i++)
if ((flag)&&(i!=1)) cout <<i;
If (n>1) then
{
for (i=0;i<10;i++)
if (i!=1)
Cout << ic(n-1,false)
else
Cout << ic(n-1,true);
}
}
۰
ارسال: #۱۴
  
الگوریتم کدهای ده دهی
جسارت نباشه !
این الگوریتم فک میکنم که مثلا تو اعداد دو رقمی اعدادی که یکانشون ۱ باشه رو کلا تولید نمیکنه!
در صورتی ک من مشکلم از بین اعداد دو رقمی فقط ۱۱ است!
این الگوریتم فک میکنم که مثلا تو اعداد دو رقمی اعدادی که یکانشون ۱ باشه رو کلا تولید نمیکنه!
در صورتی ک من مشکلم از بین اعداد دو رقمی فقط ۱۱ است!
۰
ارسال: #۱۵
  
الگوریتم کدهای ده دهی
ببینید راه حل بهتر اینطور مسائل اینه همیشه آخرین عدد اضافه شده رو در حافظه نگه دارید البته اگر فرض نبودن یک عدد ۲ رقمی در تولیدات باشد(اگر فرض عدد n رقمی باشه باید n-1 رقم رو در حافظه نگه دارید). و در هر مرحله اگر با توجه به عددی که در حافظه است رشته تولید شده صحیح بود ادامه میدیم. در غیر این صورت باید حالت دیگه ای رو چک کنیم!
حالا با این روش حل سوال آخرتونو مینویسم که روش جا بیوفته!
تمام رشته هایی که فاقد ۱۱ باشند.
برای این کار همیشه رقم قبلی که به رشته اضافه شده رو نگه میداریم و حالا اگر ۱ بود دیگه ۱ نمیتونیم اضافه کنیم اما اگر غیر ۱ بود هر یک از ۹ رقم رو میتونیم اضافه کنیم و n رو یک واحد کاهش میدیم.
وقتی که n==0 بشه رشته یک رشته پذیرفته شده است و باید چاپ بشه!
[tex]C(int\ n,int\ x ,int\ y )\{[/tex]
[tex]if (n = =0) cout << x[/tex]
[tex]if (n > 0)\{[/tex]
[tex]for(int\ i = 0;i<= 9;i )\{[/tex]
[tex]if (y == 1\ \&\&\ i !=1)C( n - 1, x * 10 i, i)[/tex]
[tex]if (y !=1) C( n - 1, x * 10 i, i)[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
اینم باید به صورت [tex]C(num,0 ,9 )\{[/tex] (یعنی یه حالت امن) فراخوانی اولیه کنیم!
حالا با این روش حل سوال آخرتونو مینویسم که روش جا بیوفته!
تمام رشته هایی که فاقد ۱۱ باشند.
برای این کار همیشه رقم قبلی که به رشته اضافه شده رو نگه میداریم و حالا اگر ۱ بود دیگه ۱ نمیتونیم اضافه کنیم اما اگر غیر ۱ بود هر یک از ۹ رقم رو میتونیم اضافه کنیم و n رو یک واحد کاهش میدیم.
وقتی که n==0 بشه رشته یک رشته پذیرفته شده است و باید چاپ بشه!
[tex]C(int\ n,int\ x ,int\ y )\{[/tex]
[tex]if (n = =0) cout << x[/tex]
[tex]if (n > 0)\{[/tex]
[tex]for(int\ i = 0;i<= 9;i )\{[/tex]
[tex]if (y == 1\ \&\&\ i !=1)C( n - 1, x * 10 i, i)[/tex]
[tex]if (y !=1) C( n - 1, x * 10 i, i)[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
[tex]\}[/tex]
اینم باید به صورت [tex]C(num,0 ,9 )\{[/tex] (یعنی یه حالت امن) فراخوانی اولیه کنیم!
ارسال: #۱۶
  
RE: الگوریتم کدهای ده دهی
خطاب به JAVADEM!
میشه یکم توضیح بدید در باره این؟
روال کارشو متوجه نمیشم اصن!
مشکل من اینه که مثلا وقتی دارم اعداد دو رقمی رو بررسی میکنم و ۰۰و۰۱و۰۲و.....۰۹ رو که به من داد چطوری برم ۱۱؟
یعنی چطوری ۰ رو به ۱ تبدیل کنم؟
کدوم خط این کارو برام میکنه؟
اصن این که دو تا C ها یکیه
وای گیج شدم
میشه یکم توضیح بدید در باره این؟
روال کارشو متوجه نمیشم اصن!
مشکل من اینه که مثلا وقتی دارم اعداد دو رقمی رو بررسی میکنم و ۰۰و۰۱و۰۲و.....۰۹ رو که به من داد چطوری برم ۱۱؟
یعنی چطوری ۰ رو به ۱ تبدیل کنم؟
کدوم خط این کارو برام میکنه؟
اصن این که دو تا C ها یکیه
وای گیج شدم
۰
ارسال: #۱۷
  
الگوریتم کدهای ده دهی
۰
ارسال: #۱۸
  
الگوریتم کدهای ده دهی
متوجه شدم!
مرســــــــــــــــــی از a.hooshmand و javadem !!
مرســــــــــــــــــی از a.hooshmand و javadem !!
۰
ارسال: #۱۹
  
الگوریتم کدهای ده دهی
من عذر میخوام . چند روزی نبودم.
اگر هنوز کاملا متوجه نشدید توضیح بدم.
ببینید ما چیزی رو تبدیل نمیکنیم.
در هر مرحله یک رقم به عدد اضافه میشه. خوب اگر این رقمی که میخواد اضافه بشه باعث این بشه که کل اون زیر رشته ای که نمیخوایم رو تولید کنه. این رقم رو نمیذاریم و اجازه میدیم که for رقم بعدی رو بیاره و مقایسه کنه.
مثلا میخواید رشته هایی که فاقد ۱۱و۱۲ هستند رو ایجاد کنید
این روش خیلی سادست فقط شما باید رقم اضافه شده قبلی رو نگه دارید حال اگر رقم قبلی که اضافه شده ۱ بود که نمیتونیم ۱ و ۲ رو اضافه کنیم پس از این ۲ عدد میگذریم و فقط رقم۰و ارقام ۳ تا ۹ رو میتونیم بعد از هر ۱ اضافه کنیم.
اما اگر رقم قبلی غیر از یک بود هر رقمی از ۰ تا ۹ میتونه بیاد. در هر مرحله هم رقم قبلی به روز میشه دیگه.
چون تابه بازگشتیه و از for داخلش استفاده شده همه ی اعداد مورد نظر میتونن تولید بشن
موفق باشید
اگر هنوز کاملا متوجه نشدید توضیح بدم.
ببینید ما چیزی رو تبدیل نمیکنیم.
در هر مرحله یک رقم به عدد اضافه میشه. خوب اگر این رقمی که میخواد اضافه بشه باعث این بشه که کل اون زیر رشته ای که نمیخوایم رو تولید کنه. این رقم رو نمیذاریم و اجازه میدیم که for رقم بعدی رو بیاره و مقایسه کنه.
مثلا میخواید رشته هایی که فاقد ۱۱و۱۲ هستند رو ایجاد کنید
این روش خیلی سادست فقط شما باید رقم اضافه شده قبلی رو نگه دارید حال اگر رقم قبلی که اضافه شده ۱ بود که نمیتونیم ۱ و ۲ رو اضافه کنیم پس از این ۲ عدد میگذریم و فقط رقم۰و ارقام ۳ تا ۹ رو میتونیم بعد از هر ۱ اضافه کنیم.
اما اگر رقم قبلی غیر از یک بود هر رقمی از ۰ تا ۹ میتونه بیاد. در هر مرحله هم رقم قبلی به روز میشه دیگه.
چون تابه بازگشتیه و از for داخلش استفاده شده همه ی اعداد مورد نظر میتونن تولید بشن
موفق باشید
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close