اولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!

ورود ثبت‌نام راهنما درباره‌ی کاهو
پرسش‌ها برچسب‌ها کاربر‌ها سوال بپرسید!

آمار پرسش:

  • پرسیده شده: 2024-03-16 14:25:47 -0500
  • مشاهده شده: 100 بار
  • بروز شده: 2024-03-16 15:26:07 -0500

پرسش‌های مشابه:

سوال ۱ روز دوم مرحله ۲ دوره ۲۳: رشته‌ی نزدیک

بازی رنگی - سوال ۱ - مرحله ۲ - ۱۳۹۳

وزنه‌ها و ماشین جادویی - سوال ۲ - مرحله ۲ - ۱۳۹۳

گاوی خسیس - سوال ۳ - مرحله ۲ - ۱۳۹۳

انتقال مهره‌های گاوی - سوال ۴ - مرحله ۲ - ۱۳۹۳

یافتن کوچکترین پیچ و مهره با مقایسه آنها

دنباله و جادوگر - دوره ی 24 - مرحله ی 2

دوربین های عکاسی

مسئله ی مسیر و شبکه - مرحله ی 2 – دوره ی 23

بازی خاموش کردن چراغ ها

نکاتی در مورد نوشتن پاسخ:

در این قسمت می‌تونی به یک پرسش پاسخ بدی. اگه می‌خوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخ‌ها مفید هستند حتما بهشون رای بده تا پرسش‌ها و پاسخ‌های خوب مشخص بشن.

استفاده از ویرایشگر:

توی قسمت پیش‌نمایش می‌تونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
می‌تونی از تگ‌های معمولی و ساده‌ی html هم استفاده کنی.
با دکمه‌هایی که بالای ویرایش‌گر قرار دارند کلی کار می‌شه کرد. از عکس‌گذاشتن بگیر تا لیست شماره‌دار. حتما امتحان‌شون کن.

علائم ریاضی:

برای نوشتن علائم ریاضی می‌تونی از Mathjax استفاده کنی. راهنمای Mathjax رو از سایت math.stackexchange بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.

مسئله چهارم: صندوقچه ی پر رمز و راز

1

n صندوقچه ی جادویی با شماره های 1 تا n داریم. زیر هر صندوقچه، یک عدد بین 1 تا n نوشته شده است (ممکن است اعداد نوشته شده زیر چند صندوقچه با هم یکسان باشند). توجه کنید ما نمی توانیم اعداد زیر صندوقچه ها را بخوانیم.

در هر صندوقچه تعدادی یاقوت سرخ وجود دارد. ابتدا در همه ی صندوقچه ها بسته است، ولی می توان هربار در یک صندوقچه را باز کرد، تعداد یاقوت هایی آن را شمرد و در آن را بست. نکته ی اسرار آمیز این صندوقچه ها آن است که به محض بستن در یک صندوقچه تمام یاقوت های درون آن به صندوقچه ای منتتقل می شوند که شماره ی آن، زیر این صندوقچه نوشته شده است.

توجه کنید که مجاز نیستیم همزمان در چند صندوقچه را باز کنیم یا به یاقوت ها دست بزنیم؛ فقط می توانیم در صندوقچه ی دلخواه را باز کنیم، یاقوت های درون آن را بشماریم و در آن را ببندیم.

ثابت کنید با انجام عمل فوق (به تعداد دلخواه) می توا از تعداد کل یاقوت ها مطلع شد.

لینک سوال: صندوقچه پر رمز و راز

مرحله۲ ۱۳۸۲ دوره-۱۳
2024-03-16 14:25:47 -0500
یک عدد انسان 31 ● 1 ● 1 ● 7
پاک‌کردن   ویرایش سوال

1 پاسخ

1

اثبات این سوال را من با استقرا انجام دادم

پایه استقرا برای n=1 که واضح است.

فرض می کنیم که حکم برای n-1 درست باشد و حالا حکم را برای n اثبات می کنم.

حالا عملیات زیر را انجام می دهم:

1- مقدار i و s را برابر 1 قرار بده.

2- در صندوقچه ی شماره ی i را باز کن و x را برابر تعداد یاقوت های آن (در همان لحظه) قرار بده و در صندوقچه را ببند.

3- دوباره در صندوقچه ی i را باز کن و y را برابر تعداد یاقوت های آن (در همان لحظه) قرار بده و در صندوقچه را ببند.

4- اگر x>0 و y=0 بود، s را برابر صفر قرار بده و به خط 6 برو؛ در غیر اینصورت به خط 5 برو.

5- اگر i=n بود به خط 6 برو؛ در غیر اینصورت i را یکی زیاد کن و به خط 2 برو.

6- پایان.

اگر بعد از پایان اجرای الگوریتم بالا، مقدار s برابر 1 بود، یعنی عدد نوشته شده زیر هر صندوقچه، با شماره ی همان صندوقچه برابر است و یا تعداد یاقوتهای موجود در آن صندوقچه، برابر صفر بوده است.در اینصورت با باز و بست کردن هیچ صندوقچه ای، یاقوتی از آن صندوقچ به صندوقچه ی دیگری منتقل نمی شود (چرا؟) و به راحتی می توان تعداد کل یاقوت ها را به دست آورد.

اما اگر s صفر باشد، یعنی صندوقچه ای وجود داشته که عدد زیرش با شماره ی خودش برابر نبوده و تعداد ناصفری یاقوت داشته است. با توجه به روند اجرای الگوریتم، واضح است که صندوقچه ی شماره ی i این ویژگی دارد؛ به عبارتی عددی مانند j زیر صندوقچه ی i نوشته شده که i≠j (توجه کنید که ما فعلا نمی دانیم j چه عددی است). حالا دوباره در صندوقچه ی i را باز می کنیم و می بندیم تا مطمئن شویم خالی شده است و بعد، آن را کنار می گذاریم. حالا تمام یاقوت ها داخل n-1 صندوقچه ی دیگر است که طبق فرض استقرا می توانیم طوری عملیات باز و بست کردن صندوقچه ها را انجام دهیم که از تعداد کل یاقوت ها مطلع شویم. البته باید بعد از هر عملیاتی که انجام می دهیم، یکبار هم در صندوقچه ی i (که آن را کنار گذاشته بودیم) بازو بست کنیم (چرا؟). باا این حساب، اگر صندوقچه ای داشته باشیم که عدد نوشته شده زیر آن برابر i باشد، در عملیات هایی که طبق فرض استقرا انجام می دهیم مثل آن است که عدد نوشته شده زیرش برابر j باشد (j همان عددی است که زیر صندوقچه ی i نوشته شده بود). با این کار می توانیم، تعداد کل یاقوت های موجود د n صندوقچه را نیز به دست آوریم و حکم اثبات می شود.

2024-03-16 15:21:29 -0500
یک عدد انسان 31 ● 1 ● 1 ● 7
پاک‌کردن   ویرایش پاسخ

پاسخ شما

فقط در صورتی که پاسخی برای این پرسش دارید، آن را اینجا بنویسید و برای بحث کردن از قسمت «ثبت‌ نظر» استفاده کنید. شما می‌توانید قبل از وارد شدن به سایت پاسخ خود را بنویسید. این پاسخ ذخیره می‌شود و زمانی که شما وارد سایت شدید یا ثبت‌نام کردید منتشر می‌شود.

پیش‌نمایش:

کلیه‌ی حقوق این سایت متعلق به کمیته‌ی ملی المپیاد کامپیوتر است.