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

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

آمار پرسش:

  • پرسیده شده: 2014-05-22 07:33:08 -0500
  • مشاهده شده: 501 بار
  • بروز شده: 2014-06-14 01:58:38 -0500

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

سوال ۲ آزمون مرحله سوم دوره ۲۳

سوال ۳ آزمون مرحله سوم دوره ۲۳

سوال ۴ آزمون مرحله سوم دوره ۲۳

سوال ۵ مرحله سوم دوره ۲۳

سوال ۶ مرحله سوم دوره ۲۳

والیبال (زیر مسئله ج) - آزمون مرحله سوم دوره ۲۳ - روز اول

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

آزمون عملی (مرحله سوم) المپیاد کامپیوتر چطور برگزار میشه و برای آمادگیش چیکار کنیم؟

استفاده از کد در آزمون مرحله سوم

سوال آزمون آزمایشی دوره 23

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

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

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

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

علائم ریاضی:

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

سوال ۱ آزمون مرحله سوم دوره ۲۳

3

آیا می‌دونید تیم فوتبال ایران چطور تونست کره‌جنوبی رو در زمین این کشور شکست بده و به جام جهانی صعود کنه؟ کارلوس کی‌روش (سرمربی تیم) شب قبل از مسابقه، به‌وسیله دو تابع $f$ و $g$ شیوه بازی کره‌جنوبی رو آنالیز کرده بود‎!!!‎ این توابع به صورت زیر تعریف می‌شوند‎:‎

$$f(x,y) =‎ ‎\begin{cases}‎ ‎x‎, ‎& y=0 \\ ‎2f(x,\lfloor \frac{y}{2} \rfloor)‎, ‎& y > 0‎ , ‎y = 2k \\ ‎3f(x,\lfloor \frac{y}{2} \rfloor)‎, ‎& y > 0‎ , ‎y = 2k+1 ‎\end{cases}$$

$$g(n) = \sum_{i=1}^{n-1}\sum_{j=1}^{n-1}f(i,j)$$

  1. اگر مقدار $g(\Delta+3)$ را $M_1$‎ بنامیم، باقی‌مانده تقسیم $M_1$‎ بر $\Delta$ چند است؟
  2. اگر مقدار $g(\Delta^2+3)$ را $M_2$ بنامیم، باقی‌مانده تقسیم $M_2$ بر $\Delta$ چند است؟
  3. اگر مقدار $g(2^{10000})$ را $M_3$‎ بنامیم، باقی‌مانده تقسیم $M_3$‎ بر $\Delta$ چند است؟
مرحله۳ ۱۳۹۲
2014-05-22 07:33:08 -0500
فامیل دور 317 ● 7 ● 7 ● 15
پاک‌کردن   ویرایش سوال
نظرات

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

2015-08-06 09:28:42 -0500 امیر شکری

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

2016-10-27 08:29:00 -0500 امیر شکری

1 پاسخ

2

۱. برای حل قسمت اول با توجه به اینکه $\Delta$ یک عدد نزدیک به $10^4$ است، کافی است تابع $f$ را شبیه‌سازی کنیم و با استفاده از دو حلقه تابع $g$ را محاسبه کنیم.


برای دو قسمت بعدی لازم است تابع $f$ را ساده‌سازی کنیم.

اول بررسی می‌کنیم تابع بازگشتی $f$ چه چیزی را محاسبه می‌کند.

این تابع مقادیر $x$ و $y$ را می‌گیرد و تا وقتی $y$ صفر نشده است، آن را بر دو تقسیم می‌کند. در هر مرحله اگر $y$ زوج بود حاصل را در ۲ و اگر $y$ فرد بود حاصل را در ۳ ضرب می‌کند. در انتها وقتی $y$ صفر شد، حاصل را در $x$ ضرب می‌کند.

بنابراین اگر تعداد بیت‌های یک در نمایش باینری y را $y_1$ بنامیم و تعداد بیت‌های صفر را $y_0$ بنامیم، خروجی تابع $f(x,y)$ برابر است با: $x \times 2 ^ {y_0} \times 3^{y_1}$

حالا با جاگذاری مقدار صریحی که برای $f$ بدست آوردیم، تابع $g$ را ساده‌تر می‌کنیم:

$$g(n) = \sum_{i=1}^{n-1}\sum_{j=1}^{n-1}f(i,j) = \sum_{i=1}^{n-1}\sum_{j=1}^{n-1} i \times 2 ^ {j_0} \times 3 ^ {j_1} = \sum_{i=1}^{n-1}i \times \sum_{j=1}^{n-1}2^{j_0} \times 3 ^ {j_1}$$

سیگمای اولی برابر حاصل جمع اعداد ۱ تا $n - 1$ هست که برابر است با $n(n-1)/2$.

۲. در زیر مساله‌ی دوم چون $\Delta^2$ نزدیک به $10^8$ است، برای محاسبه‌ی سیگمای دومی می‌توانیم با یک for مقدار آن را حساب کنیم.


۳. در زیر مساله‌ی سوم $\Delta$ یک عدد ۱۰۰۰۰ بیتی است و نمی‌توان با یک for سیگمای دوم را حساب کرد. در این زیر مساله باید به روش کارآمدتری سیگمای دوم را حساب کنیم. یک روش این است:

روی اینکه عدد $j$ چند بیت صفر و چند بیت یک دارد حالت بندی می‌کنیم و سپس تعداد اعدادی که چنین خاصیتی دارند را می‌شماریم. مثلا اگر عدد $j$ $a$تا بیت یک داشته باشد و $b$تا بیت صفر داشته باشد، تعداد اعداد با این خاصیت برابر است با ${a + b -1 \choose b}$.

چون به ازای هر یک از این اعداد مقدار $2^b \times 3^a$ در سیگمای دوم ظاهر می‌شود، کافی است برای محسابه‌ی سیگمای دوم به ازای همه‌ی $a$ و $b$هایی که $a+b \le 100$ مقدار عبارت ${a + b -1 \choose b} \times 2^b \times 3^a$ را محسابه کنیم و مجموع آنها را بیابیم.

ایشالا به زودی کدش رو هم می‌ذارم.

2014-06-14 01:58:38 -0500
چشمه 191 ● 6
پاک‌کردن   ویرایش پاسخ

پاسخ شما

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

پیش‌نمایش:

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