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

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

آمار پرسش:

  • پرسیده شده: 2015-04-07 13:09:25 -0500
  • مشاهده شده: 351 بار
  • بروز شده: 2015-04-20 10:57:37 -0500

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

سوال 3 روز اول مرحله دوم چهارمین المپیاد کامپیوتر ایران

مسئله 4 : آرایه ی a و کد پاسکال

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

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

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

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

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

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

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

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

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

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

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

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

علائم ریاضی:

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

دوره 4 المپیاد کامپیوتر ایران سوال 8

3

به نام خدا

یک دسته کارت شامل 2n کارت که روی آن‌ها عددهای 1,0,…,2n−1 نوشته شده است، داده شده است. می‌توانیم با انجام عمل زیر روی این دسته کارت، یک دسته کارت دیگر که در آن ترتیب قرار گرفتن کارت‌ها تغییر کرده است، بسازیم:

ابتدا دسته کارت را به دو دسته که اولی شامل n کارت اول و دومی شامل n کارت باقیمانده است، تقسیم می‌کنیم. سپس به ترتیب یک کارت از دسته‌ی اول و یک کارت از دسته دوم برمی‌داریم و این کار را آن‌قدر تکرار می‌کنیم تا تمام کارت‌ها برداشته شوند.

به‌عنوان مثال اگر شماره‌ی کارت‌های قرارگرفته در دسته‌ی اول به ترتیب برابر با ۷، ۱، ۶، ۲، ۵، ۴، ۳، ۸ باشد، پس از انجام عمل فوق، ترتیب قرار گرفتن کارت‌ها به‌ صورت ۷، ۵، ۱، ۴، ۶، ۳، ۲، ۸ خواهد بود.

سریع میرم سر اصل مطلب:

د) ثابت کنید که برای n=$2^k$+1 پس از 2k+2 بار بُر زدن به دسته کارت اولیه می‌رسیم.

مرحله۲ دوره۴ سخت جالب
2015-04-07 13:09:25 -0500
مهدی غ 785 ● 8 ● 13 ● 22
پاک‌کردن   ویرایش سوال
نظرات

سلام میدونستید انجمن علمی نخبگان دانشگاه صنعتی شریف مسابقه تخصصی مهارت سنجی برنامه نویسی و داده کاوی گذاشته است آدرس سایتش www.fanavard.com

2015-08-06 09:55:48 -0500 امیر شکری

سلام میگم یک سر به سایت www.fanavard.ir بزنید. مسابقات برنامه نویسی شون شروع شده. گواهی رسمی از طرف دانشگاه شریف می ده. 50 تا سکه هم جایزشه

2016-10-26 11:12:30 -0500 امیر شکری

1 پاسخ

6

فرض میکنیم کارت ها اول کار از چپ به راست به ترتیب قرار گرفتند. در طی برزدن ها, کارت اول و آخر سر جاشون میمونن پس میتونیم کلن در نظر نگیریمشون! دو تا تغییر در مسئله ایجاد میشه : یکی اینکه داریم $n = 2^k$ و دیگری اینکه هنگام بر زدن, کارت برداشتن رو از دسته ی سمت راستی شروع میکنیم.

جایگاه ها رو از چپ به راست از ۰ تا $2n-1$ شماره گذاری میکنیم. حالا میخوایم ببینیم کارتی که قبلن تو جایگاه $i$ بوده, بعد از برزدن کجا میره. دو حالت داریم:

1) اگه $i < n$ (یا کارت در دسته ی سمت چپ بیفته): اونموقه $i$ جفت کارت قبل از این گذاشته خواهند شد + ۱دونه کارت که قبل این از دسته ی سمت راست میاد؛ پس کارت به جایگاه $2i + 1$ میره.
۲)اگه $i \ge n$ (یا کارت در دسته ی سمت راست بیفته): اونموقه $۲(i - n)$ جفت کارت قبل از این گذاشته خواهند شد پس کارت به جایگاه $2i - 2n$یا $2i - 2^{k+1}$ میره.

حالا هر کارت رو بصورت جدا در نظر میگیریم و ثابت میکنیم که بعد از $2k + 2$ مرحله به جایگاه اولیش برمیگرده.
به هر جایگاه یک رشته ی $k + 1$ بیتی از ۰ و ۱ نسبت میدیم که بیانگر عدد اون جایگاه در مبنای ۲ـه.
اگر به دو حالت بالا دقیق تر نگاه کنیم, میبینیم که در هر بر زدن, سمت چپ ترین(پرارزش ترین) عضو رشته ی جایگاه هر کارت حذف میشه و بصورت برعکس(از ۰ به ۱ و از ۱ به ۰) به سمت راست همان رشته اضافه میشه. خب پس با $k + 1$ بار بر زدن, رشته جایگاه یک کارت $k + 1$ بار شیفت میخوره و بیت هاش برعکس میشن و این یعنی فقط بیت هاش برعکس میشن! پس با دوبار $k + 1$ بار بر زدن (یا $2k + 2$ بار بر زدن!) بیت ها به وضعیت اول خودشون برمیگردن و یعنی هر کارت به جایگاه اولیش برمیگرده! $^_^$

2015-04-08 09:45:23 -0500
محمد مهدی 1955 ● 5 ● 12 ● 40
پاک‌کردن   ویرایش پاسخ
نظرات

+1

2015-04-08 10:01:10 -0500 مهدی

++

2016-03-17 09:45:57 -0500 کنکوری

پاسخ شما

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

پیش‌نمایش:

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