har adad hade aksar bar 6 amele aval bakhshpazire baghiasho dige khodet boro
2015-05-19 14:49:40 -0600 آرش خنBaw be ezaye har adad mituni yejori asle shombolo adame shombol bezani
2015-05-19 15:26:29 -0600 آرش خناولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!
نظریه اعداد لازم برای المپیاد کامپیوتری ها
فلسفه ی وجود و یا عدم وجود جفت اعداد مسخره
محاسبه ${n \choose k}$ به پیمانه M
BWC Round #1 - ک.م.م - ک.م.م اعداد ۱ تا n را بیابید.
وبسایت مسابقههای برنامه نویسی
یافتن کوتاه ترین دور در گراف ساده
کد مساله هشت وزیر با استفاده از الگوریتم ژنتیک
مرجع فارسی برای الگوریتم های هندسی و 2sat
در این قسمت میتونی به یک پرسش پاسخ بدی. اگه میخوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخها مفید هستند حتما بهشون رای بده تا پرسشها و پاسخهای خوب مشخص بشن.
توی قسمت پیشنمایش میتونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
میتونی از تگهای معمولی و سادهی html هم استفاده کنی.
با دکمههایی که بالای ویرایشگر قرار دارند کلی کار میشه کرد. از عکسگذاشتن بگیر تا لیست شمارهدار. حتما امتحانشون کن.
برای نوشتن علائم ریاضی میتونی از Mathjax استفاده کنی.
راهنمای Mathjax رو از سایت
math.stackexchange
بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.
پیدا کنید تعداد جفت اعدادی که یکی بیشتر از a و کمتر از b باشد و دیگری کمتر از a باشد و نسبت به هم اول باشند
a<=b<=50000
محدودیت زمانی : 1s
راستشو بخواین توی یه سوال دیگه یه تیکشو مونده من اینو نیاز دارم
راه حلو کدوار میگم دیگه اثبات تیکه تیکش با خودتون... ایشالا قانع کننده باشه!
تعریف میکنیم:
$f(a, n)$ ینی تعداد اعداد کوچیکتر-مساوی $a$ که نسبت به $n$ اولن.
برا پیدا کردن $f(a, n)$ میایم بازگشتی میزنیم. چند حالت داره:
۱) اگه $a=1$ اونموقه $f(a, n) = 1$
۲) اگه $n = 1$ اونموقه $f(a, n) = a$
۳) اگه هیچکدوم از بالاییا نبود، میایم $n$ رو مینویسیم: $n = p^kq$ بصورتی که $p$ اوله و $gcd(p, q) = 1$ و $1 \le k$. حالا میشه فهمید که:
$$f(a, n) = f(a, q) - f(\lfloor\frac ap\rfloor, q)$$
حالا جواب مسئله هم میشه مجموع $f(a-1, x)$ برای $a < x < b $. $^_^$
پی نوشت: اینم کد تابع f که خودشو تست میکنه! D:
پی نوشت۲: زمان اجرای یبار صدا زدن تابع $f(a, b)$ رو میشه اینجوری بررسی کرد: حداکثر تعداد عملیات هایی که صدا زده شدن $f(a, n)$ به ازای همه ی $a$ های دنیا انجام میده رو میگیم $T(n)$. کلن برا $T(n)$ داریم که $T(n) \le 2T(q)$ که $q$ رو بالا تعریف کردیم. با استقرا میشه ثابت کرد که $T(n)$ حداکثر برابر دو به توان تعداد عوامل اول متفاوت $n$ـه که اون هم برای $n \le 50000$، حداکثر میشه $2^6 = 64$.
پس کلن زمان اجرای برنامه حداکثر $64\times b$ ـه که زیر ۱ ثانیه تموم میشه!
پی نوشت ۳:این همون $T(n)$ رو حساب کرده و به همونی که ما رسیدیم رسیده! ولی تو قسمت formulaـش نوشته که $\sum_{n=1}^bT(n) = O(blogb)$
پی نوشت ۴:اینم اثبات پی نوشت ۳!
یکم یاد این سوال افتادم : فلسفه ی وجود و یا عدم وجود جفت اعداد مسخره
حالا که نزدیک مرحله ۳ هم هست وقت بذارین حل کنینش!
میدونید چی شده من سوال شما رو داشتم تلاش میکردم حل کنم به این مشکل خوردم الان که گفتین حل شد :))))
2015-05-20 11:53:02 -0600 حمیدرضاهیه مشکلی داشت الان درست شد. حدود اثبات درستی اون تابعه: همه ی افراد کوچیکتر از a رو دو دسته کن: به p بخش پذیرن و نیستن. حالا تو f(a,q) کسایی رو اضافی میشمری که تو دسته اولن و نسبت به q اولن و از a کمترن. هرکدوم از افرادی که تو f(a/p, q) شمردیمو در p ضرب کنیم میشه یکی از اونا!
2015-05-20 13:01:01 -0600 محمد مهدیمیتونی از تابع فی اویلر استفاده کنی.برای همه اعداد a+1 تا b مجموع فی هاشون رو حساب کن. واضحه هر زوجی یبار شمرده شده دیگه.(وقتی مولفه بزرگشو میشمردیم).تابع فی از $O(NlgN)$ پیدا میشه.بقیه کارم که با $O(N)$ انجام میشه. در کل $O(NlgN)$ میشه.
الان کد میزارم.... پ.ن : کد