زمان کنونی: ۱۷ اردیبهشت ۱۴۰۳, ۱۲:۱۶ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

الگوریتم کدهای ده دهی

ارسال:
  

روفی پرسیده:

الگوریتم کدهای ده دهی

سلام!Smile
میشه تو این سوال کمکم کنید؟Huh
الگوریتمی بنویسید که تمام کدهای ده دهی که شامل ۰و۱۱و۱۲و۲۱و۲۲ نیست؟؟
(یه فایلی رو هم پیوست کردمSmile )

ببخشد شامل اون اعداد نیس رو تولیــــــــــــــــــــــــــــــــد کند!


فایل‌(های) پیوست شده
Roofia.docx
اندازه فایل: ۱۰/۹۲ KB
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

کســـــــــــــــــــــــــــــــــــــــــــــــــــــــــی ایـــــــــــــــنجـــــــــــــــــــــــــــــــــــــــا نـــــــــــــــــــــــــــــــــــــیست؟
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

کد:
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;
}


Big GrinBig GrinBig Grin
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

javadem پاسخ داده:

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 مشکل داشته باشه اما از لحاظ الگوریتمی مطمئن هست!
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

وای خدا !!!
مرسی مرسی مرسی !
واقعا متشکرم ازتون!
پر رو شدم!!!
میشه تو اینم کمکم کنید؟

"الگوریتمی بنویسید که تمام کدهای با ارقام ۰ و۱و۲ ک شامل دو صفر کنار هم یا دو یک کنار هم نباشد را تولید کند!"

بازم ممنونم ازتون!
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

چون عشق بازگشت پذیر هستید!!!

کد:
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 ها را!!!Tongue
Big GrinBig GrinBig Grin
نقل قول این ارسال در یک پاسخ

ارسال:
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

پیاده سازیشو بلد نیستم ولی ازین ایده استفاده کرده بودم برا نوشتنش!
اینو یه نگاه بندازید بیزحمت!
Shy

ببخشید!
من تازه شرو کردم به بررسی جواب ها !
متاسفانه اولین جوابی که برام نوشتید رو متوجه نمیشم!
اگ اگ اگ اگ اگ اگ براتون امکانش هست یه توضیح کوچولو هم بدید!


فایل‌(های) پیوست شده
Roofia.docx
اندازه فایل: ۱۲/۰۶ KB
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

الگوریتم اول
برای ساخت عدد n رقمی از به توان رساندن ۱۰ به قوه nاستفاده می کند
مثلا ۲ رقمی :
i از ۱۰ تا ۹۹ شمارش می کند به شرطی که ترکیبهایی که قرار نیست چاپ شوند در عدد وجود نداشت عدد را چاپ می کند.
////////////////////
الگوریتم دوم
اگه n یک بود اعداد ۰ تا ۲ چاپ می کند
اگه n بیشتر از یک بود اعداد ۰ تا ۲ را اول چاپ می کند و در ادامه تابع را با یکی کمتر (و اطلاع به تابع که رقم قبلی صفر یا یک بوده که دوباره تابع پشت سر هم چاپ نکند) صدا می زند.




در cout های تو در توی برای پیاده سازیش که شکل خروجی آن طوری شود که انتظار دارید شایید از کل الگوریتم شما مشکل تر شود


۱ c(3)==1111و۱۱۰۰و۱۱۰۱و۱۱۱۰و۱۰۱۱و۱۰۱۰و۱۰۰۱


۱c(3) را بسط بدید که یک ها سر جای خود باشند

اگه مستقیم چاپ کنید احتمالا شما بایید به جلو و عقب خط بروید و کارکترها را جابه جا کنید که به محل مناسب چاپ برسید. (پیاده سازی این کار خودش می تواند قصه ای باشدBig GrinBig GrinBig GrinTongue)
نقل قول این ارسال در یک پاسخ

ارسال:
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

الان تو دلتون میگید این دختر عجب گـــــــــــــــــــــیریه هااااااااااااBig Grin
این سوال آخرمه به جون روفی! Shy
ایشالا یه جوری جبران کنم هرچند شما نیاز ندارید به کمک کسی!

"الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۰
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

(۱۱ آذر ۱۳۹۱ ۰۷:۲۶ ب.ظ)روفی نوشته شده توسط:  الگوریتمی بنویسید که تمام عدد هایی که فاقد الگوی ۱۱ هستن را تولید کند!"
همون الگوریتم اولی را که نوشتم را این جوریش کن

کد:
if ({11}  not in i)  cout <<i;






راستی اصلا به الگوریتم هایی که من نوشتم اعتماد نکن چون من اصلا درس طراحی الگوریتم پاس نکردم!!!(رشته لیسانس من یکی از گرایشهای مهندسی برق بوده)
و ممکن هست اصلا درست نباشد!!!

الگوریتم اول را خودتان نوشتید یا استادتان؟
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۱
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

اولی رو فقط تونستم خودم بنویسم که به استاد نشون دادم گف قابل قبوله!

یک دنیــــــــــــــــــــــــــا ممنونم ازتون!
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۲
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

(۱۱ آذر ۱۳۹۱ ۰۷:۳۴ ب.ظ)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);
          
     }
}
نقل قول این ارسال در یک پاسخ

ارسال: #۱۳
  

روفی پاسخ داده:

RE: الگوریتم کدهای ده دهی

خواهش میکنم۱
Sad
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۴
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

جسارت نباشه !
این الگوریتم فک میکنم که مثلا تو اعداد دو رقمی اعدادی که یکانشون ۱ باشه رو کلا تولید نمیکنه!
در صورتی ک من مشکلم از بین اعداد دو رقمی فقط ۱۱ است!
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۵
  

javadem پاسخ داده:

الگوریتم کدهای ده دهی

ببینید راه حل بهتر اینطور مسائل اینه همیشه آخرین عدد اضافه شده رو در حافظه نگه دارید البته اگر فرض نبودن یک عدد ۲ رقمی در تولیدات باشد(اگر فرض عدد 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] (یعنی یه حالت امن) فراخوانی اولیه کنیم!
نقل قول این ارسال در یک پاسخ

ارسال: #۱۶
  

روفی پاسخ داده:

RE: الگوریتم کدهای ده دهی

خطاب به JAVADEM!
میشه یکم توضیح بدید در باره این؟
روال کارشو متوجه نمیشم اصن!Sad

مشکل من اینه که مثلا وقتی دارم اعداد دو رقمی رو بررسی میکنم و ۰۰و۰۱و۰۲و.....۰۹ رو که به من داد چطوری برم ۱۱؟
یعنی چطوری ۰ رو به ۱ تبدیل کنم؟
کدوم خط این کارو برام میکنه؟

اصن این که دو تا C ها یکیه
وای گیج شدم
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۷
  

a.hooshmand پاسخ داده:

الگوریتم کدهای ده دهی

(۱۱ آذر ۱۳۹۱ ۰۸:۳۵ ب.ظ)روفی نوشته شده توسط:  این الگوریتم فک میکنم که مثلا تو اعداد دو رقمی اعدادی که یکانشون ۱ باشه رو کلا تولید نمیکنه!
در صورتی ک من مشکلم از بین اعداد دو رقمی فقط ۱۱ است!

if ((flag)&&(i!=1)) cout <<i;
این flag برای همین هست
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۸
  

روفی پاسخ داده:

الگوریتم کدهای ده دهی

متوجه شدم!
مرســــــــــــــــــی از a.hooshmand و javadem !!
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۹
  

javadem پاسخ داده:

الگوریتم کدهای ده دهی

من عذر میخوام . چند روزی نبودم.
اگر هنوز کاملا متوجه نشدید توضیح بدم.
ببینید ما چیزی رو تبدیل نمیکنیم.
در هر مرحله یک رقم به عدد اضافه میشه. خوب اگر این رقمی که میخواد اضافه بشه باعث این بشه که کل اون زیر رشته ای که نمیخوایم رو تولید کنه. این رقم رو نمیذاریم و اجازه میدیم که for رقم بعدی رو بیاره و مقایسه کنه.
مثلا میخواید رشته هایی که فاقد ۱۱و۱۲ هستند رو ایجاد کنید
این روش خیلی سادست فقط شما باید رقم اضافه شده قبلی رو نگه دارید حال اگر رقم قبلی که اضافه شده ۱ بود که نمیتونیم ۱ و ۲ رو اضافه کنیم پس از این ۲ عدد میگذریم و فقط رقم۰و ارقام ۳ تا ۹ رو میتونیم بعد از هر ۱ اضافه کنیم.
اما اگر رقم قبلی غیر از یک بود هر رقمی از ۰ تا ۹ میتونه بیاد. در هر مرحله هم رقم قبلی به روز میشه دیگه.
چون تابه بازگشتیه و از for داخلش استفاده شده همه ی اعداد مورد نظر میتونن تولید بشن
موفق باشید
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  سلام بچه های کدهای سیستم تهویه هوا رو کسی داره فاطمه دیبا ۰ ۱,۲۱۰ ۱۲ آبان ۱۴۰۰ ۰۹:۱۲ ق.ظ
آخرین ارسال: فاطمه دیبا
  چگونه آتوریتی سایت را افزایش دهیم mahsa-nita ۰ ۱,۴۸۵ ۱۴ مرداد ۱۳۹۶ ۰۷:۵۸ ب.ظ
آخرین ارسال: mahsa-nita
  قطعه کدهای الگوریتم درخت تصمیم درمتلب ایرانی۲۰۱۷ ۰ ۱,۶۴۰ ۱۲ خرداد ۱۳۹۶ ۰۴:۲۰ ب.ظ
آخرین ارسال: ایرانی۲۰۱۷
  شیوه ی نشانی دهی wskf ۰ ۹۵۰ ۳۱ فروردین ۱۳۹۶ ۰۵:۰۶ ب.ظ
آخرین ارسال: wskf
  کدهای الگوریتم سولین,کراسکال,پریم mohammad.chavoshipor ۲ ۲,۹۴۱ ۱۴ دى ۱۳۹۵ ۱۰:۰۵ ب.ظ
آخرین ارسال: sam7ariya
  پریدن کدهای برنامه اجرا نشدنبرنامه + سی شارپ mozhgan-ahmadi ۰ ۱,۵۴۷ ۳۰ آذر ۱۳۹۵ ۰۸:۳۵ ب.ظ
آخرین ارسال: mozhgan-ahmadi
  اگر دو ستون مشترک داشتیم چگونه پیوند طبیعی انجام دهیم؟ Hopegod ۵ ۳,۹۸۳ ۲۵ مهر ۱۳۹۵ ۰۳:۲۲ ب.ظ
آخرین ارسال: amirarsalannamdar
  انتخاب موضوع برای درس سمینار (مجازی سازی یا رایانش ابری) شما پیشنهاد دهید؟ AH64D ۲ ۳,۰۲۷ ۰۶ مهر ۱۳۹۵ ۱۲:۴۳ ق.ظ
آخرین ارسال: khayyam
  ۱۷۱ نرم افزار و ۱۹۸ الگوریتم - شبانه الگوریتم دانشگاه تهران axarsu ۱ ۲,۴۸۷ ۰۸ شهریور ۱۳۹۵ ۰۸:۳۶ ب.ظ
آخرین ارسال: majidgeek
  ۲۴۲ الگوریتم ،۳۷۱ نرم. الگوریتم برم یا نرم افزار؟ azamcheraghi ۱۱ ۷,۳۳۳ ۰۳ تیر ۱۳۹۵ ۱۱:۳۸ ق.ظ
آخرین ارسال: azamcheraghi

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close