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

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

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


در کارت گرافیک برای بالا بردن سرعت، پردازش بخش‌های مختلف به صورت موازی انجام می‌شود. این پردازش‌ها را می‌توان به شکل یک درخت نشان داد. در این سوال به پردازش درختی از توابع می‌پردازیم. به شما یک درخت دودویی از توابع به شکل زیر داده می شود. درخت دودویی هر یال جهت‌دار به این معناست که تابعی که یال از آن خارج شده باید قبل از تابعی که یال به آن وارد شده محاسبه شود. (یا می‌توان گفت تابع دوم برای انجام محاسباتش نیاز به خروجی تابع اول دارد). توابع در سه لیست fs و gs و hs از طریق کلاس Functions به شما داده می‌شوند (برای مثال، f[0] همان f1f1 است). در ضمن توجه داشته باشید که تمام توابع بدون آرگومان ورودی هستند.

فایل Source را دانلود کرده و محتوای آن را ببینید و متد solve را مطابق با توضیحات زیر پیاده‌سازی کنید.

شما باید این درخت را به ترتیب زیر پردازش کنید:

  • با چهار ترد با نام‎های 1 و 2 و 3 و 4: با ترد iiام، fifi پردازش شود.
  • با دو ترد با نام‎های 1 و 2: با ترد iiام، gigi پردازش شود.
  • با یک ترد با نام 1: با ترد iiام، hihi پردازش شود.

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

مثال🔗

با اجرای متد main از کلاس Main خروجی زیر یکی خروجی‎های صحیح محتمل است.

F1 by 1 - F4 by 4 - F2 by 2 - F3 by 3 - G1 by 1 - G2 by 2 - H1 by 1 - 
Plain text

توجه داشته باشید که تمامی Fها قبل از Gها و تمامی Gها قبل از Hها چاپ می‎شود.

آنچه باید آپلود کنید.🔗

یک فایل zip که وقتی آن را باز می‌کنیم، فقط فایل ThreadSolution.java را ببینیم.

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