ایول عجب مسئله ی جالبیه.
من روش حلش با دست رو بلدم اما نتونستم برنامش رو بنویسم.
ساعت شبه! خواب گرفت! باز فردا یادم باشه روش فکر میکنم. خیلی چالش بر انگیزه! سختیشم تو نوشتن برنامشه!
توضیح صورت سوال و روش حل ۀت به صورت دستی و نه حل برنامه ای آن:
سوال در مورد یک روش کد گذاری حرف میزنه که در آن جای حروف رو عوض میکنند به طوری که هیچ دو حرفی جایشان با یک حرف عوض نشود.(تا بتوان جمله ی رمز شده رو دوباره ترجمه کرد)
مثلا در جمله ی: "
در باز شد"
به جای حرف
د ،
ر قرار میدهند و جای
ر،
ه میزارن و جای
ب،
ع و جای
ا،
غ و جای
ز،
ط و جای
ش،
ث میزارن.
که جمله اینجوری میشه:
"ره عغط ثر"
حالا برای باز کردن رمز میان حروف داخلش رو به ما میدن و
میگن که تو جملمون این حروف هست: در - شد - باز
حالا ما باید رمز گشاییش بکنیم.
میبینید که به صورت دستی کار ساده ای هست کافیه تعداد حروف برابر رو معادل بگیریم.
در جمله ی
در باز شد دیده میشه که فقط یک کلمه ی "باز"
سه حرفی هست پس واضح است که معدال "عغط" هست پس میفهمیم:
ع : ب
غ : ا
ط: ز
و میبینیم که برای حل بقیه ی رمز دوحالت داریم:
حالت اول : "ره =شد " بگیریم پس میفهمیم : "ر=ش" و "ه =د" اما در اینحالت عبارت "ثر" که در آخر جمله ی رمزی آمده به صورت "ثر = در" میشود که نتیجه میدهد "ر = ر" که این با "ر=ش" تناقض دارد
پس این حالت درست نیست
حالت دوم: "ره = در" که میدهد: "ر = د" و "ه = ر" پس لغت آخر "ثر = شد" میشود که میدهد"ث = ش"و "ر = د" که با نتایج قبل مطابقت دارد پس
این جواب صحیح هست و عبارت بر اساس راهنماییی که ساختیم ترجمه میشود.
توجه مهم: در مواقعی ممکن است چند جواب برای عبارت رمزشده بدست بیاید ، در اینحالت صورت سوال گفته همه ی حالات ممکنه را چاپ کند.
و ممکن است در مواقعی هیچ جوابی برای رمز پیدا نشود که در این حالت باید به جای حروف رمز، ستاره"*" چاپ شود. (به نمونه ی ورودی و خروجی که در صورت سوال آورده شده دقت کنید.)
برای نوشتن برنامه من خیلی خوابم اومده وباید خیلی فکر کنم که امیدوارم فردا بتونیم حلش کنیم.
تشکر ویژه از مدیر عزیز که این سوال رو داد! و مارو از کشتن وقتمون و البته بی معمایی نجات داد!!!!
موفق و پیروز باشید. آرمان