Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:مرحله ی اول:دوره ی ۲۶:سوال ۹

سوال ۹

فرض کنید a یک بیت دل‌خواه (۰ یا ۱) باشد. منظور از ˉa برابر با 1a است. حال فرض کنید یک رشته‌ای دودویی داریم. در هر مرحله می‌توان یکی از دو عمل زیر را انجام داد:

  • یک بیت مانند b در رشته را در نظر بگیریم و در دو طرف آن ˉb بنویسیم. برای مثال از رشته‌ی 0,۱,1 و با انتخاب بیت وسط می‌توان به رشته‌ی 0,0,1,0,1 رسید.
  • دو بیت متوالی مانند ab را در نظر بگیریم و به جای آن‌ها ˉaˉb بنویسیم. برای مثال از رشته‌ی 0,1,1 و با انتخاب دو بیت سمت راست می‌توان به رشته‌ی 0,0,0 رسید.

اگر ابتدا رشته‌ی دودویی 0 را داشته باشیم، با استفاده از دو عمل فوق نمایش دودویی چند عدد صحیح از ۲۱ تا ۲۶ را می‌توانیم بسازیم؟ توجه کنید که قرار گرفتن رقم‌های ۰ در ابتدای نمایش اشکال ندارد. برای مثال اگر به رشته‌ی 0,0,1,1,0,1 برسیم، در واقع عدد ۱۳ را ساخته‌ایم.

  1. ۰
  2. ۱
  3. ۲
  4. ۳
  5. ۴

راهنمایی

ثابت کنید یک عدد قابل ساختن است اگر و تنها اگر تعداد بیت های ۱ اش زوج باشد.

پاسخ

گزینه‌ی ۳ درست است.

ثابت می‌کنیم یک عدد قابل ساختن است، اگر و تنها اگر در نمایش دودویی آن زوج رقم ۱ وجود داشته باشد. با انجام این دو نوع عمل، زوجیت تعداد ارقام ۱ تغییری نمی‌کند. کافی است ثابت کنیم هر عدد که نمایش دودویی آن زوج رقم ۱ دارد، قابل ساختن است. فرض کنید عدد n چنین باشد و 2p رقم ۱ و q رقم ۰ در نمایش دودویی آن موجود باشد. با تبدیل ۰ به ۰۱۱ به شکل زیر می‌توان به رشته‌ی 0111 که 2p رقم ۱ دارد، رسید: 01010111011101111 حال با تبدیل ۰ به ۰۰۰ به شکل زیر می‌توان به رشته‌ی 000111 رسید که 2p رقم ۱ و بیش‌تر از q رقم ۰ دارد: 0111101111110111000111 حال با تبدیل ۰۱ به ۱۰ می‌توان هر ۰ را آن‌قدر به سمت راست انتقال داد تا به جای مورد نظر برسد و به این ترتیب عدد n ساخته می‌شود.

در نمایش دودویی اعداد 21,22,,26 تنها دو عدد هستند که زوج رقم ۱ دارند. پس پاسخ برابر ۲ است.


ابزار صفحه