۱۹
دی

کمانگیر : بازی سال نو

   Posted by: امید   in روزنوشت

بازی از اینجا شروع شد ، و اینجا هم کاملتر شد …

قضیه از این قرار بود که برنامه ای بنویسیم که با ترکیب اعداد ۹ ۰ ۰ ۲ و عملگرهای + – * / ^ و پرانتز ها ، اعداد ۰ تا ۲۰۰۹ را بسازیم . برای مثال ۱۰=۹+۰^۲ ویا ۲۰=۲۰ ویا ۲=۲-۰ ویا ۲=۲ و الی آخر …

ایده ی من برای حل این مساله ، تبدیل اعداد و عملگر ها به یک آرایه بود . با این کار و تولید جایگشت های مختلف از اندیس های این ارایه ، اعضای متناظر رو استخراج می کنیم و با ترکیب اونها ، تمامی عبارات ممکن رو تولید می کنیم .

این عبارات شامل عبارات با معنی و عبارات بی معنی مثل ؟ = ۲-*/ هم میشه ، که البته خود کمانگیر عزیز این مشکل رو حل کرده .و در آخر هم ، نتایج رو در یک آرایه ریخته ، مرتب می کنیم و عناصر تکراری رو حذف می کنیم .

به عنوان مثال :

با فرض آرایه اولیه [ ^ / * - ۹ ۰ ۰ ۲ ] خواهیم داشت :

با تولید جایگشت ۱ : عدد ۲

با تولید جایگشت ۲ ۴ ۱ ۳ : عدد ۰۲۹۰ یا همان ۲۹۰

با تولید جایگشت ۷ ۸ ۲ : عبارت ^/۲ که بی معنی است

نکته اصلی محاسبه تمامی جایگشت های ۱ عضوی تا N عضوی ممکن برای یک مجموعه N عضویه.

و البته ، استفاده از پرانتز . که باید توجه داشت که یا پرانتز استفاده نشه و یا یک جفت پرانتز استفاده بشه که باعث کم شدن احتمال خطا در نتیجه می شه . یعنی عبارت ۲( نباید تولید شه . که من هنوز این مشکل رو حل نکردم .

به هر حال ، بازی ای بود که کمانگیر شروع کرد ، حالا من هم ادامه دادم .

دریافت فایل به زیان matlab

پ ن : یک مشکل کوچک در محاسبه جایگشت های ۱ و ۲ عضوی داره هنوز …

پ ن : خط اول توضیحات فایل مشکل گرامری داره ، لطفا نخندید D:

This entry was posted on پنجشنبه, دی ۱۹م, ۱۳۸۷ at ۴:۵۱ ق.ظ . filed under روزنوشت. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 comments so far

ماسو
 1 

مرا با این اعداد و ارقام و اینها کاری نیست! به مغزم هم فشار نمیارم که بفهمم یعنی چی اینها :دی

بهمن ۱۹م, ۱۳۸۷ at ۹:۰۸ ب.ظ
کمانگیر
 2 

دست شما درست. اگر درست متوجه شده باشم، شما روی طول ِ رشته یک حلقه گذاشتی. این طول رو من تصادفی کرده بودم.
ایول.
فقط یک نکته، مشکل من هم بود این. به این ترتیب در یک رشته پر اپراتور فقط یکبار تکرار می شه.
دستت درست به هر حال! چاکریم. :)
کاش لیست می دادی از اعدادی که تولید شده. :)

بهمن ۱۹م, ۱۳۸۷ at ۹:۰۹ ب.ظ
 3 

az barname nevisi motenaferam

بهمن ۱۹م, ۱۳۸۷ at ۹:۱۴ ب.ظ

Leave a reply

Name
Mail (will not be published)
URI
Comment