مجموعه سوالات برنامه نویسی

ترجمه سوالات سایت های معتبر برنامه نویسی

مجموعه سوالات برنامه نویسی

ترجمه سوالات سایت های معتبر برنامه نویسی

مجموعه سوالات برنامه نویسی

بسیاری از برنامه نویسان برای بهبود سطح برنامه نویسی خود و آشنایی با سوالات گوناگون برنامه نویسی به سایت هایی که مجموعه ای از سوالات مختلف برنامه نویسی را جمع آوری می کنند ، مراجعه می کنند.اما در این سایت ها سوالات همگی به زبان انگلیسی ترجمه شده اند و ما در این بلاگ سعی در معرفی سوال های برگزیده ی این سایت ها همراه با ترجمه ی آن ها داریم.

طبقه بندی موضوعی
آخرین مطالب
پربیننده ترین مطالب
آخرین نظرات

100 - The 3n + 1 problem

شنبه, ۱۷ دی ۱۳۹۰، ۰۷:۳۹ ب.ظ

این هم از نهمین سوال :

 

100 - The 3n + 1 problem

محدودیت زمانی : 3 ثانیه

مسئله 3n + 1”

الگوریتم زیر را در نظر بگیرید:

  1. عدد n را ورودی بگیر.
  2. عدد n را چاپ کن.
  3. اگر n=1 : توقف کن.
  4. اگر n فرد بود:  n <-- 3n + 1
  5. اگر n زوج بود: n <-- n/2
  6. به شماره 2 برو.

اگر عدد 22 را ورودی بدهیم ، چنین دنباله ی اعدادی چاپ خواهد شد:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

این که الگوریتم بالا به ازای هر عدد صحیحی به عنوان ورودی پایان پذیرد(با چاپ عدد 1) ، یک حدس است.با وجود سادگی این الگوریتم هنوز درست بودن این حدس اثبات نشده است. اما در مورد اعداد صحیح مانند n به طوری که 0 < n < 1,000,000 تایید شده است.

در مورد ورودی n ، محاسبه ی تعداد اعدادی که چاپ می شوند ( با احتساب 1) ، امکان پذیر است. در مورد n ، این ویژگی ، طول چرخه ی n نامیده می شود. در مثال بالا طول چرخه ی 22 برابر با 16 است.

برای هر دو عدد i و j  شما باید بزرگترین طول چرخه ی موجود در میان همه ی اعداد بین i و j را محاسبه کنید.

ورودی

ورودی شامل یک سری جفت اعداد صحیح i وj  و هر جفت در خطی جداگانه می شود. همه ی اعداد صحیح کمتر از 1،000،000 و بیشتر از 0 هستند.

شما باید همه ی جفت های اعداد صحیح را پردازش کرده و برای هر یک بزرگترین طول چرخه ی موجود در میان همه ی اعداد صحیح بین i و  j و خود آن ها را محاسبه کنید.

می توانید فرض کنید که در هیچ پردازشی عددی از عدد صحیح 32 بیتی (2147483647) بیشتر نمی شود.

ورودی با انتهای فایل به پایان می رسد.

 

خروجی

برای هر جفت ورودی اعداد صحیح i و j  شما باید i و j  و بزرگترین طول چرخه ی موجود در میان همه ی اعداد صحیح بین i و  j و خود آن ها را خروجی دهید. این سه عدد باید در همه ی خط ها و به ازای هر خروجی برای هر ورودی، با دست کم یک space از یکدیگر جدا شوند. اعداد i و j  باید با همان ترتیبی که در ورودی ظاهر شده اند، در خروجی چاپ شوند و در ادامه نیز در همان خط بزرگترین طول چرخه خواهد آمد.

نمونه ها و لینک ها در ادامه مطلب...

ورودی نمونه

1 10

100 200

201 210

900 1000

خروجی نمونه

1 10 20

100 200 125

201 210 89

900 1000 174

برای دیدن اصل سوال و فرستادن جواب می توانید به نشانی زیر مراجعه کنید:

http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=36

 

برای دریافت فایل PDF سوال به زبان انگلیسی به نشانی زیر مراجعه کنید:

http://uva.onlinejudge.org/external/1/100.pdf

 

برای دریافت فایل PDF سوال به زبان فارسی به نشانی زیر مراجعه کنید:

دریافت فایل
عنوان فایل:100 - The 3n + 1 problem

موافقین ۱ مخالفین ۰ ۹۰/۱۰/۱۷
سیّد پارسا میرطاهری

نظرات  (۱)

اینکه "ورودی با انتهای فایل به پایان می رسد." دقیقا ترجمه کدوم خطشه؟
آخه من طبق ترجمه خودم، به خاطر همین یه نکته هرچی میفرستادم قبول نمیکرد!
تا اینکه مجبور شدم دنبال متن فارسیش بگردم :(

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی