در کارت گرافیک برای بالا بردن سرعت پردازش بخشهای مختلف به صورت موازی انجام میشود. این پردازشها را میتوان به شکل یک درخت نشان داد. در این سوال به پردازش درختی از توابع میپردازیم. به شما یک درخت دودویی از توابع به شکل زیر داده میشود.
![](https://quera.ir/qbox/download/psBE42OL5B/graph)
هر یال جهتدار به این معناست که تابعای که یال از آن خارج شده باید قبل از تابعای که یال به آن وارد شده محاسبه شود. (یا میتوان گفت تابع دوم برای انجام محاسبتش نیاز به خروجی تابع اول دارد). توابع در سه لیست `f` و `g` و `h` در فایل `functions.py` قرار دارند.(برای مثال `f[0]` همان $f_1$ است.) (همهی توابع بدون آرگومان هستند برای مثال `f[0]()` تابع $f_1$ را صدا میکند.)
شما باید با ۴ ترد به نامهای `1` و `2` و `3` و `4` این درخت را به ترتیب زیر محاسبه کنید.
+ ابتدا با ترد $i$ام، $f_i$ محاسبه شود.
+ سپس با ترد $i$ام، $g_i$ محاسبه شود.
+ و در نهایت با ترد $i$ام، $h_i$ محاسبه شود.
+ دقت کنید که تردهایی که توابع هر طبقه را اجرا میکنند میتوانند یکسان نداشته باشند و صرفا نامشان `1` و `2` و `3` و `4` باشد.
دقت کنید که محاسبات هر مرحله (طبقهی درخت) باید به صورت همزمان انجام شود. (برای مثال $f_1$ و $f_2$ باید همزمان محاسبه شوند)
از شما میخواهیم برای سریعتر شدن اجرا توابع را به ترتیب ذکر شده (با کمک تردها) صدا کنید.
کد خود را در تابعای به نام `solve` در `solution.py` بنویسید و زیپ و ارسال کنید.
پروژهای - تردکاری - پایتون
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.