فرض کنید 100000 نفر در 10 آزمون و در هر آزمون در 5 درس شرکت میکنند. پس از برگزاری آزمونها، پاسخدهی شرکت کنندگان بررسی شده و به هر نفر در هر درس چهار رنگ (از ضعیف تا قوی) قرمز، زرد، سبز و آبی اختصاص داده میشود:
- قرمز: صفر
- زرد: یک
- سبز: دو
- آبی: سه
بنابراین برای هر شرکتکننده 50 رنگ اختصاص داده میشود.
مفروضات:
- شماره شناسایی شرکتکنندگان از 1 الی 100000 میباشد.
- شماره آزمونها از 1 الی 10 میباشد.
- شماره درسها در هر آزمون 1 الی 5 میباشد، ضریب هر درس همان شماره درس است.
الگوریتمی طراحی کنید که:
- پاسخ اولیه شرکتکنندگان به صورت Random تولید شود.
- امکان درج رنگ هر درس در هر آزمون برای هر شرکتکننده وجود داشته باشد.
- اطلاعات جمعآوریشده ذخیره و بازیابی شود.
- میزان حافظه مصرفی برای نگهداری این اطلاعات در کمترین حالت ممکن باشد: 100000×10×5×4 حالت یعنی کمتر از 2.5MB
- امکان ارائه آمارهای مختلف نظیر موارد ذیل وجود داشته باشد:
- N نفر برتر (رنگ آبی) یک درس در یک آزمون
- N نفر برتر در یک آزمون با توجه به ضرایب دروس
- N برتر کل آزمونها
- میانگین پاسخگویی در هر درس در هر آزمون
نکات:
- با هر زبانی که بلدید میتوانید این الگوریتم را تولید کنید.
- UI بایستی شفاف و عملکرد آن سریع باشد.
- اطلاعات را میتوانید در یک فایل یا بانک اطلاعاتی نگهداری کنید.
- حجم حافظه مصرفی در مدیای نگهداریشده و در حافظه (Memory) کمتر از 2.5MB باشد.