logo-favicon

گروه فناوری اطلاعات شریف

فرض کنید 100000 نفر در 10 آزمون و در هر آزمون در 5 درس شرکت می‌کنند. پس از برگزاری آزمون‌ها، پاسخدهی شرکت کنندگان بررسی شده و به هر نفر در هر درس چهار رنگ (از ضعیف تا قوی) قرمز، زرد، سبز و آبی اختصاص داده می‌شود:

  • قرمز: صفر
  • زرد: یک
  • سبز: دو
  • آبی: سه

بنابراین برای هر شرکت‌کننده 50 رنگ اختصاص داده می‌شود.

مفروضات:

  • شماره شناسایی شرکت‌کنندگان از 1 الی 100000 می‌باشد.
  • شماره آزمون‌ها از 1 الی 10 می‌باشد.
  • شماره درس‌ها در هر آزمون 1 الی 5 می‌باشد، ضریب هر درس همان شماره درس است.

الگوریتمی طراحی کنید که:

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

نکات:

  • با هر زبانی که بلدید می‌توانید این الگوریتم را تولید کنید.
  • UI بایستی شفاف و عملکرد آن سریع باشد.
  • اطلاعات را می‌توانید در یک فایل یا بانک اطلاعاتی نگهداری کنید.
  • حجم حافظه مصرفی در مدیای نگهداری‌شده و در حافظه (Memory) کمتر از 2.5MB باشد.
کاربر گرامی؛ تاریخ برگزاری و ثبت نام این رویداد بزودی از طریق همین صفحه اعلام خواهد شد.