برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوه‌ی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبان‌های مختلف، اینجا را ببینید.

در مورد سوالات پروژه‌ای می‌توانید انتخاب کنید که کدتان را به یکی از زبان‌های پایتون یا جاوا بزنید و در سوال مربوطه می‌توانید راه‌حلتان را ارسال کنید.

پروژه‌ای - تردکاری - پایتون


در کارت گرافیک برای بالا بردن سرعت پردازش بخش‌های مختلف به صورت موازی انجام می‌شود. این پردازش‌ها را می‌توان به شکل یک درخت نشان داد. در این سوال به پردازش درختی از توابع می‌پردازیم. به شما یک درخت دودویی از توابع به شکل زیر داده می‌شود. هر یال جهت‌دار به این معناست که تابع‌ای که یال از آن خارج شده باید قبل از تابع‌ای که یال به آن وارد شده محاسبه شود. (یا می‌توان گفت تابع دوم برای انجام محاسبتش نیاز به خروجی تابع اول دارد). توابع در سه لیست f و g و h در فایل functions.py قرار دارند.(برای مثال f[0] همان f1f_1​ است.) (همه‌ی توابع بدون آرگومان هستند برای مثال f[0]() تابع f1f_1​ را صدا می‌کند.)

شما باید با ۴ ترد به نام‌های 1 و 2 و 3 و 4 این درخت را به ترتیب زیر محاسبه کنید.

  • ابتدا با ترد iiام، fif_i​ محاسبه شود.
  • سپس با ترد iiام، gig_i محاسبه شود.
  • و در نهایت با ترد iiام، hih_i محاسبه شود.
  • دقت کنید که تردهایی که توابع هر طبقه را اجرا می‌کنند می‌توانند یکسان نداشته باشند و صرفا نام‌شان 1 و 2 و ‍3 و ‍4 باشد.

دقت کنید که محاسبات هر مرحله (طبقه‌ی درخت) باید به‌ صورت همزمان انجام شود. (برای مثال f1f_1​ و f2f_2​ باید همزمان محاسبه شوند)

از شما می‌خواهیم برای سریع‌تر شدن اجرا توابع را به ترتیب ذکر شده (با کمک تردها) صدا کنید.

کد خود را در تابع‌ای به نام solve در solution.py بنویسید و زیپ و ارسال کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.