جمع دو عدد (آموزشی)


اگر تا حالا توی کوئرا سوالی حل نکردی این ویدیو رو ببین!
  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

در این سوال به شما دو عدد صحیح مثل aa و bb داده می‌شود. از شما می‌خواهیم برنامه‌ای بنویسید که مقدار aa و bb را دریافت کند و a+ba + b را چاپ کند.

ورودی🔗

در تنها سطر ورودی، دو عدد صحیح aa و bb که با یک فاصله از هم جدا شده‌اند، داده می‌شود.

1a,b1001 \leq a, b \leq 100

خروجی🔗

در تنها سطر خروجی، مقدار a+ba + b را چاپ کنید.

مثال‌ها🔗

ورودی نمونه ۱🔗

3 5
Plain text

خروجی نمونه ۱🔗

8
Plain text

ورودی نمونه ۲🔗

1 1
Plain text

خروجی نمونه ۲🔗

2
Plain text

اشتباهات متداول🔗

چک کردن شرایط ورودی مسئله

نیازی نیست چک کنید شرایط گفته شده در ورودی برقرار است یا نه. توضیحات محدودیت‌ها فقط برای آگاهی شما درباره‌ی تست‌ها و محدودیت‌های مسئله است و قطعاً در ورودی‌های داده شده به برنامه‌ی شما رعایت می‌شوند. پس نیازی نیست بنویسید:

if 1 <= n <= 100:
    # answer of problem
else:
    # print('invalid input')
Python
ابتدا همه‌ی ورودی را گرفتن و در نهایت همه‌ی خروجی را چاپ کردن

شما می‌توانید لابه‌لای دریافت ورودی، خروجی دهید. پس نیازی نیست ابتدا همه‌ی ورودی‌ها را دریافت کنید و در نهایت همه‌ی خروجی‌ها را چاپ کنید. مخصوصاً برای سوالاتی که باید به چندین سوال پاسخ دهید، می‌توانید دو قسمت ورودی و خروجی را کاملاً مستقل در نظر بگیرید و مطمئن باشید تداخلی پیش نمی‌آید.

چاپ کردن موارد اضافه برای دریافت ورودی

لطفاً از چاپ کردن موارد اضافه مثل please enter a number برای دریافت ورودی پرهیز کنید. برای مثال در زبان پایتون نباید بنویسید:

input('please enter:')
Python
چند فایلی کد زدن

برای زبان‌هایی مثل جاوا نباید در بالای کد شما آدرس پکیج داده شود. برای مثال در بالای کد خود نباید بنویسید:

package ir.quera.contest;
Java
استفاده از چند Scanner برای دریافت ورودی

در زبان جاوا، باید فقط یک شئ از جنس Scanner تعریف کنید و همه‌ی ورودی‌ها را با آن دریافت کنید.

نحوه‌ی دریافت ورودی و چاپ کردن خروجی

برای آشنایی بیشتر برای نحوه‌ی دریافت ورودی و چاپ کردن خروجی این لینک را مطالعه کنید.

المپیک‌های آقا تختی


آقا تختی در المپیک ۱۹۵۶ ملبورن، مدال طلای وزن ۸۷ کیلوگرم را کسب کرد. در المپیک ۱۹۶۰ رم، او مدال نقره وزن ۸۷ کیلوگرم را به دست آورد. در المپیک ۱۹۶۴ توکیو، با وجود تلاش فراوان، به عنوان چهارم این وزن به کار خود پایان داد.

حال از شما می‌خواهیم یک برنامه بنویسید که شماره‌ی سال را دریافت کنید و بررسی کنید آیا در آن سال آقا تختی مدالی دریافت کرده یا نه؟

ورودی🔗

در سطر اول ورودی، عدد صحیح و مثبت nn داده می‌شود. 1896n19681896 \leq n \leq 1968

خروجی🔗

در صورتی که آقا تختی در آن سال مدال گرفته، Yes و در غیر این صورت No چاپ کنید.

مثال‌ها🔗

ورودی نمونه ۱🔗

1960
Plain text

خروجی نمونه ۱🔗

Yes
Plain text

ورودی نمونه ۲🔗

1964
Plain text

خروجی نمونه ۲🔗

No
Plain text

ورودی نمونه ۳🔗

1968
Plain text

خروجی نمونه ۳🔗

No
Plain text

در مسیر المپیک


فایل اولیه سوال را می‌توانید از این لینک دانلود کنید.

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


مجموعه‌داده🔗

در این قسمت قصد داریم توضیح دهیم که هر ستون از مجموعه‌‌داده، نماینده چه متغیری است.

  • ویژگی ID: شماره شناسایی منحصر به فرد برای هر رکورد ورزشکار
  • ویژگی Name: نام کامل ورزشکار
  • ویژگی Sex: جنسیت ورزشکار (M: مرد، F: زن)
  • ویژگی Age: سن ورزشکار در زمان شرکت در المپیک
  • ویژگی Height: قد ورزشکار بر حسب سانتی‌متر (مقادیر NA نشان‌دهنده داده‌های مفقود است.)
  • ویژگی Weight: وزن ورزشکار بر حسب کیلوگرم
  • ویژگی Team: نام کشور یا تیم ورزشکار (مثال: China، Denmark)
  • ویژگی NOC: کد سه حرفی کمیته ملی المپیک کشور مربوطه (مثال: CHN برای چین)
  • ویژگی Games: نام دوره‌ی المپیک به صورت ترکیب سال و فصل (مثال: 1992 Summer)
  • ویژگی Year: سال برگزاری المپیک
  • ویژگی Season: فصل برگزاری (Summer: تابستانی، Winter: زمستانی)
  • ویژگی City: شهر میزبان المپیک
  • ویژگی Sport: نام رشته ورزشی
  • ویژگی Event: رویداد خاص در آن رشته ورزشی
  • ویژگی Medal: نوع مدال کسب شده (Gold: طلا، Silver: نقره، Bronze: برنز، NA: بدون مدال)

اهداف🔗

در این بخش از مسابقه، تمام مراحل لازم برای تحلیل داده‌ها به دقت در نوت‌بوک توضیح داده شده است. شما موظف هستید با پیروی از این دستورالعمل‌ها، چندین مجموعه‌داده جدید را از داده‌های اولیه استخراج کرده و در نهایت خروجی‌های خود را در قالب یک فایل zip در کوئرا بارگذاری نمایید. امتیازدهی این بخش بر اساس دو معیار اصلی انجام می‌شود:

  1. صحت و دقت مجموعه‌داده‌های تولید شده
  2. انطباق کامل نتایج با الزامات تعیین شده در صورت مسئله

کشتی‌گیری در دنیای اعداد


فایل اولیه سوال را می‌توانید از این لینک دانلود کنید.

تحلیل کارایی و برآورد پارامتر🔗

در فایل اولیه سوال یک فایل به فرمت CSV‍ به نام wrestling_stats.csv وجود دارد که اطلاعات مسابقات کشتی را نگه می‌دارد.

هر سطر (به جز هدر) شامل این ستون‌هاست:

  • match_id

  • weight_class

  • duration_sec

  • points_winner

  • points_loser

  • continent_winner

  • match_type

وظیفهٔ شما نوشتن یک اسکریپت پایتون (بدون هیچ import یا ماژول خارجی) است که دو فایل خروجی تولید می‌کند:

  • part_one.csv
  • part_two.csv

پیاده‌سازی🔗

شما باید یک فایل پایتونی به نام stc.py ایجاد کنید. سپس در این فایل باید دو تابع بنویسید که هر تابع وظیفه دارد تا یک دیتاست ایجاد کند و آن را در کنار فایل stc.py ذخیره کند. نام این دو تابع به شرح زیر است:

  • create_part1
  • create_part2

این دو تابع وظیفه دارند که مجموعه‌داده‌ی wrestling_stats.csv را دریافت کنند و سپس طبق توضیحات داده شده اطلاعاتی را تولید کرده و در دو مجموعه داده‌ی part_one.csv و part_two.csv ذخیره کنند. توجه کنید که ورودی این دو تابع باید نام یک مجموعه‌داده باشد.

شما باید فایل پیاده‌سازی پایتونی خود را به همراه part_one.csv و part_two.csv زیپ کرده و در کوئرا قرار دهید.


محدودیت‌های کلی🔗

  1. بدون استفاده از هیچ دستور import؛ فقط مجاز به استفاده از built-inهای پایتون هستید.

  2. خروجی‌ها باید دقیقاً در قالب CSVباشند.

  3. دقت اعداد اعشاری در خروجی حداقل ۶ رقم پس از ممیز باشد.

  4. همهٔ محاسبات (مثل نمایی و لگاریتم و بهینه‌سازی) باید به صورت دستی پیاده‌سازی شوند.


قسمت اول – رتبه‌بندی کارایی🔗

  1. برای هر مسابقه ii کارایی را تعریف کنید:

    Ei=points_winneriduration_seci. E_i = \frac{\text{points\_winner}_i}{\text{duration\_sec}_i}.

  2. برای هر جفت (continent_winner,weight_class)\bigl(\text{continent\_winner},\,\text{weight\_class}\bigr) میانگین کارایی را محاسبه کنید:

    mean_effc,w=1Nc,wi:(ci,wi)=(c,w)Ei. \text{mean\_eff}_{c,w} = \frac{1}{N_{c,w}} \sum_{i:(c_i,w_i)=(c,w)} E_i.

  3. نمونه خروجی در part_one.csv:

continent weight_class mean_efficiency
Asia Heavyweight 12.967815168

ردیف‌ها بر حسب mean_efficiency نزولی مرتب شوند.


قسمت دوم – تخمین پارامتر نمایی قطع‌شده (MLE)🔗

برای هر دستهٔ وزنی (ww) فرض کنید زمان‌های مبارزه تابع چگالی نمایی قطع‌شده دارند که در بازه [0,Tw][0,T_w] تعریف می‌شود، آنگاه تابع چگالی احتمال به شکل زیر است:

f(t;λ)=λeλt1eλTw,0tTw f(t; \lambda) = \frac{ \lambda \cdot e^{-\lambda t} }{ 1 - e^{-\lambda T_w} }, \quad 0 \leq t \leq T_w

  1. برای هر کلاس وزنی w، لگاریتم درست‌نمایی (log‐likelihood) را بنویسید و پارامتر λ^w\hat\lambda_w را با روشی مناسب (مثلاً نیوتن–رافسون یا جستجوی عددی) پیدا کنید.
  1. معیار AIC را محاسبه کنید:

AICw=2k2w(λ^w),k=1. \mathrm{AIC}_w = 2\,k \;-\; 2\,\ell_w(\hat\lambda_w), \quad k=1.

  1. خروجی در part_two.csv، هر سطر سه ستون:
weight_class lambda_hat aic
Heavyweight 15.21354613 18.21354613

ردیف‌ها بر حسب lambda_hat به صورت صعودی مرتب شوند. دقت عددی هر مقدار حداقل ۶ رقم اعشار باشد.


نکات تکمیلی

محدودیت‌های پیاده‌سازی :

  • نمی‌توانید از هیچ کتابخانهٔ خارجی یا ماژول (یعنی هیچ import) استفاده کنید.
  • تنها از توابع و امکانات پایهٔ پایتون استفاده کنید.
  • فایل‌ها را با متدهای استاندارد open/read/write بخوانید/بنویسید.
  • فرمت CSV باید دقیقاً مطابق با آنچه گفته شد باشد (جداسازی با ‍, ، بدون فاصلهٔ اضافه).
  • برای توابع نمایی از مقدار ثابت e=2.718281828459045 استفاده کنید.
  • همهٔ محاسبات آماری و عددی را باید خودتان پیاده کنید (تابع log، مشتق، حل عددی و …).

پشت صحنه زمین


داده‌های اولیه برای تست نهایی را از این لینک دانلود کنید.
توضیحات مهم اولیه

در فایل world_cup.zip فایلی به اسم initial.sql وجود دارد.

با اجرای این فایل، همه جداول و سطرهایی که برای تست‌ نهایی مورد استفاده قرار می‌گیرد در پایگاه داده شما ایجاد می‌شوند. پیش از اجرای این فایل، حتما پایگاه داده‌ای با اسم دلخواه ایجاد کنید و در ابتدای این فایل، کد use YOUR_DB_NAME; را وارد کنید.

کوئری‌های شما باید روی آخرین نسخه‌ی MySQL قابل اجرا باشند.

برای چک کردن سینتکس کد SQL خود می‌توانید از این وبسایت کمک بگیرید.

این مسئله شامل ۶ بخش است که در ادامه آمده است.

1) سوال اول🔗

اسم بازیکنانی که دست‌کم یک بار جایزهٔ آقای گلی را گرفته‌اند را همراه با تعداد دفعات دریافت جایزه بیابید. ردیف‌ها باید مرتب‌شده نزولی بر اساس تعداد دفعات و صعودی بر اساس شناسهٔ بازیکن باشند.

توضیحات در مورد Query اول

سطر اول خروجی شما باید به شکل زیر باشد:

family_name name times_won
Lineker Gary 1

2) سوال دوم🔗

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

طبق این سیستم، به تیم قهرمان هر دوره ۴ امتیاز، تیم نایب‌قهرمان ۳ امتیاز، تیم سوم ۲ امتیاز و تیم چهارم ۱ امتیاز دریافت می‌کند. سینا مجموع امتیاز هر کشور را در تمامی دوره‌های جام جهانی محاسبه کرده و در پایان، فهرستی از ۱۰ کشور برتر از لحاظ مجموع امتیاز ارائه می‌دهد.

هم‌چنین او تأکید دارد که نتایج "آلمان غربی" (West Germany) باید با "آلمان" (Germany) یکی در نظر گرفته شود.

خروجی مورد انتظار، جدولی شامل دو ستون با نام‌های "team_name" و "total_score" است که در آن کشورها بر اساس مجموع امتیاز به صورت نزولی مرتب شده‌اند. در صورتی که دو یا چند کشور امتیاز برابر داشته باشند، اولویت با ترتیب حروف الفبای نام کشور به صورت صعودی است. جدول نهایی باید دقیقاً شامل ۱۰ ردیف باشد.

توضیحات در مورد Query دوم

2 سطر اول خروجی شما باید به شکل زیر باشد:

team_name total_score
Germany 37
Brazil 32

3) سوال سوم🔗

پنج تورنمنت با بیش‌ترین تعداد کارت قرمز را به همراه سال برگزاری نمایش دهید. ردیف‌ها باید مرتب‌شده نزولی بر اساس تعداد کارت قرمز و صعودی بر اساس شناسهٔ تورنمنت باشند.

توضیحات در مورد Query سوم

2 سطر اول خروجی شما باید به شکل زیر باشد:

tournament_id tournament_year red_card_count
WC-1998 1998 18

4) سوال چهارم🔗

برای تحلیل عملکرد مربیان در رقابت‌های جام جهانی، نیاز است فهرستی از ۱۱ مربی برتر از نظر مجموع امتیازات کسب‌شده تهیه شود. در این ارزیابی، هر برد معادل ۳ امتیاز، هر تساوی معادل ۱ امتیاز، و باخت بدون امتیاز در نظر گرفته می‌شود. کوئری‌ای بنویسید که بر اساس این معیار، مربیانی را که بیش‌ترین امتیاز را در تاریخ جام جهانی کسب کرده‌اند، شناسایی کند. خروجی باید شامل دو ستون زیر باشد:

  • full_name: نام کامل مربی که از ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.

  • total_score: مجموع امتیازات کسب‌شده توسط مربی.

ترتیب نتایج باید به صورت نزولی بر اساس total_score و در صورت برابر بودن امتیاز، به صورت نزولی بر اساس full_name باشد. دقت کنید که تنها ۱۱ نفر اول باید در خروجی نمایش داده شوند.

توضیحات در مورد Query چهارم

3 سطر اول خروجی شما باید به شکل زیر باشد:

full_name total_score
Helmut Schön 53
Luiz Felipe Scolari 49
Mário Zagallo 44

5) سوال پنجم🔗

هر تیم در مرحلهٔ حذفی چند گل زده است؟ فقط تیم‌هایی که مجموع گل‌هایشان در این مرحله بیش از ۱۰ باشد را نمایش دهید و بر اساس گل، نزولی و در صورتی که تعداد گل دو تیم مساوی بود بر اساس شناسهٔ تیم به صورت صعودی مرتب کنید.

توضیحات در مورد Query پنجم

3 سطر اول خروجی شما باید به شکل زیر باشد:

time_id total_goals
T-09 95
T-28 65
T-39 59

6) سوال ششم🔗

هدف این بخش، استخراج فهرستی از ۲۰ بازیکن با بیش‌ترین سن، در زمان حضور در یک مسابقه است. سن بازیکنان باید بر حسب روز محاسبه شود.

کوئری‌ای بنویسید که اطلاعات زیر را برای این بازیکنان استخراج کند:

  • full_name: نام کامل بازیکن که با ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.

  • match_name: نام مسابقه‌ای که بازیکن در آن به میدان رفته و مشخص‌کننده دو تیم حاضر است.

  • team_name: نام تیم ملی بازیکن.

  • tournament_year: سال برگزاری تورنمنت.

  • age: سن بازیکن بر حسب روز در زمان انجام مسابقه.

نتایج باید به صورت نزولی بر اساس ستون age مرتب شوند و فقط ۲۰ رکورد اول نمایش داده شود. توجه داشته باشید که یک بازیکن ممکن است بیش از یک بار در این فهرست ظاهر شود.

توضیحات در مورد Query ششم

3 سطر اول خروجی شما باید به شکل زیر باشد:

full_name match_name team_name tournament_year age
Essam El Hadary Saudi Arabia v Egypt Egypt 2018 16597
Faryd Mondragón Japan v Colombia Colombia 2014 15709
Roger Milla Russia v Cameroon Cameroon 1994 15379

روش پیاده‌سازی🔗

در یک فایل با نام code.sql کد خود را قرار دهید و آن را فشرده (zip ) کنید و در سایت بارگذاری نمایید. کد شما باید به صورت زیر باشد(نام فایل zip مهم نیست).


-- Section1

   your first query here

-- Section2

   your second query here

-- Section3

   your third query here

-- Section4

   your fourth query here

-- Section5

   your fifth query here

-- Section6

   your sixth query here
SQL

می‌مانی یا که می‌روی؟


مجموعه‌داده و فایل اولیه پروژه‌ را می‌توانید از این لینک دانلود کنید.

هر فصل، صدها بازیکن در لیگ حرفه‌ای بسکتبال ایران توپ می‌زنند. بعضی‌ها ستاره می‌شوند، بعضی‌ها متوسط می‌مانند و بعضی‌ها بی‌سروصدا محو می‌شوند. ولی یک سوال همیشه در ذهن مربی‌ها، آنالیزورها و حتی خود بازیکن‌ها هست:

"آیا این بازیکن ۵ سال بعد هنوز توی لیگ خواهد بود؟ یا این فصل آخرین فرصتش برای درخشیدن است؟"

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

نحوه‌ی ارسال پاسخ🔗

برای پاسخ به این سوال ابتدا فایل نوت‌بوک قرار گرفته در فایل اولیه را باز کنید و سپس مراحل را مطابق آنچه که از شما خواسته شده انجام دهید. در نهایت، پس از اجرای سلول جواب‌ساز (آخرین سلول فایل نوت‌بوک) فایل result.zip ساخته شده را ارسال نمایید.

کشتی‌گیر کجاست؟


فایل‌های اولیه را می‌توانید از این لینک دانلود کنید.

در ادامه‌ی مسابقه، قصد داریم توانمندی شما را در حوزه‌ی پردازش تصویر و بینایی کامپیوتر ارزیابی کنیم. در این سوال، با داده‌های تصویری مرتبط با کشتی سر و کار خواهید داشت.

در این سوال هدف این است که با استفاده از تکنیک‌های پردازش تصویر یا بینایی کامپیوتر، تابعی را پیاده‌سازی کنید که در هر تصویر دو کشتی‌گیر را سفید کند و مابقی جزئیات را سیاه کند.

شکل ۱ تصویر ورودی و شکل ۲ تصویر خروجی مطلوب مسئله است.

معرفی تصاویر🔗

در فایل اولیه، چهار نمونه از تصاویر ورودی و خروجی (ماسک سیاه و سفید) قرار دارد که می‌توانید از آن‌ها برای ارزیابی پیاده‌سازی خود استفاده کنید. در هر تصویر، دو کشتی‌گیر حضور دارند. اندازه‌ی تمامی تصاویر ورودی برابر با ۶۴۰×۶۴۰ پیکسل است. در تمام تصاویر، کشتی‌گیران لباس مخصوص کشتی به تن دارند.

وظیفه‌ی شما این است که ماسکی تولید کنید که تمام بدن هر دو کشتی‌گیر را به رنگ سفید نمایش دهد و سایر بخش‌های تصویر را به رنگ سیاه درآورد.

تصویر خروجی باید دارای همان ابعاد تصویر ورودی و در فضای رنگی RGB باشد، به‌گونه‌ای که هر پیکسل مربوط به ناحیه‌ی کشتی‌گیران سفید و سایر پیکسل‌ها سیاه باشد.

نحوه ارسال پاسخ🔗

شما باید یک فایل پایتونی با نام wrestler.py بسازید که درون آن یک تابع با نام detect_wrestler پیاده‌سازی شده است. این تابع آدرس یک تصویر را به عنوان ورودی می‌گیرد و سپس در خروجی باید تصویری را تحویل بدهد که در قسمت‌های بدن کشتی‌گیر پیکسل‌ها سفید و در سایر نواحی پیکسل‌ها سیاه باشند.

در نهایت این فایل پایتونی را در قالب zip قرار دهید و در کوئرا آپلود کنید.

کتابخانه‌های مجاز

توجه کنید که در این سوال تنها مجاز به استفاده از numpy و openCV هستید .

معیار ارزیابی🔗

در این سوال خروجی تابع شما با استفاده از معیار Intersection of Union یا به اختصار IoU ارزیابی خواهد شد و باید حداقل دقت ۶۰ درصد را کسب نماید. بنابراین در صورت کسب آستانه مورد نظر، امتیاز شما همان دقت شما از ۱۰۰ و در غیر این صورت صفر خواهد بود. این معیار بین ماسک واقعی و ماسک تولید شده با استفاده از تابع شما محاسبه خواهد شد.