প্রসঙ্গ
স্ট্র পোল এমন একটি ওয়েবসাইট যা সাধারণ / অনানুষ্ঠানিক পোল তৈরির উদ্দেশ্যে তৈরি। বিকল্পগুলির একটি তালিকা সহ সরবরাহ করা হয়েছে, ব্যবহারকারী তাদের পছন্দ (গুলি) নির্বাচন করতে পারেন এবং ভোটগুলি দীর্ঘায়িত হবে। স্ট্র পোলের দুটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে:
- ভোটদানের আগে বর্তমান ফলাফলগুলি দেখা সম্ভব
- একাধিক বিকল্প নির্বাচন করা প্রায়শই সম্ভব, আপনি একই বিকল্প হিসাবে একইরকম আচরণ করা হয় যেমন আপনি একাধিকবার ভোট দিয়েছেন, প্রতিটি বিকল্পের জন্য একটি করে।
স্ট্র পোল তৈরির চেয়ে মজাদার একটি জিনিস ফলাফলের সাথে গোলমাল করছে। ব্যাহত হওয়ার দুটি প্রধান প্রকার রয়েছে:
- সাধারণ ব্যাঘাত, যাতে আপনি সমস্ত বিকল্পের পক্ষে ভোট দিন
- উন্নত বাধাগুলি, যাতে আপনি প্রভাবটি সর্বাধিকীকরণের জন্য কৌশলগতভাবে কোন বিকল্পগুলির পক্ষে ভোট চান তা বেছে নিন।
এই চ্যালেঞ্জে আপনি উন্নত বাধাগুলির জন্য একটি প্রোগ্রাম লিখবেন ।
ম্যাথ
গাণিতিকভাবে বিষয়গুলির জন্য, আমরা বলতে পারি যে ভোটের এনট্রপি যত বেশি হবে, একটি পোল তত বেশি ব্যাহত হবে। এর অর্থ হ'ল এমন একটি জরিপ যেখানে একক বিকল্পে সমস্ত ভোট রয়েছে তা মোটেই ব্যাহত হয় না, এবং যেখানে প্রতিটি বিকল্পের সমান সংখ্যক ভোট রয়েছে এমন একটি পোল সর্বাধিক ব্যাহত হয় (এটি চূড়ান্ত লক্ষ্য হ'ল)।
সংখ্যার তালিকার এনট্রপি [x1, x2, ..., xn]উইকিপিডিয়া থেকে নিম্নলিখিত সমীকরণ দ্বারা দেওয়া হয়েছে। P(xi)সম্ভাবনা xi, যা হয় xi / total_num_of_votes। যদি কোনও বিকল্প যদি এখনও অবধি শূন্য ভোট পেয়ে থাকে তবে তা কেবল সংক্ষেপে অন্তর্ভুক্ত থাকে না (এড়াতে log(0))। আমাদের উদ্দেশ্যে, লগারিদম আপনার পছন্দের যে কোনও বেসে থাকতে পারে।
উদাহরণস্বরূপ, এর ইন্ট্রপি [3,2,1,1]প্রায় 1.277বেস, ই ব্যবহার করে ।
পরবর্তী পদক্ষেপটি কী ভোটিং প্যাটার্নটি এন্ট্রপির সর্বাধিক বৃদ্ধির দিকে নিয়ে যায় তা নির্ধারণ করা। আমি বিকল্পগুলির যে কোনও উপসেটের পক্ষে ভোট দিতে পারি, উদাহরণস্বরূপ আমার ভোট হতে পারে [1,0,1,0]। এগুলি যদি আমার ভোট হয় তবে চূড়ান্ত ট্যালিটি হল [4,2,2,1]। এনট্রপি 1.273প্রদানের পুনরায় গণনা করা, এনট্রপির হ্রাস দেয় , যার অর্থ এটি ব্যাহত হওয়ার এক ভয়ানক প্রচেষ্টা। এখানে আরও কিছু বিকল্প রয়েছে:
don't vote
[3,2,1,1] -> 1.277
vote for everything
[4,3,2,2] -> 1.342
vote for the 1s
[3,2,2,2] -> 1.369
vote for the 2 and 1s
[3,3,2,2] -> 1.366
এই থেকে, আমরা যে অনুকূল ভোটিং প্যাটার্ন হয় [0,0,1,1]যেহেতু এটি এনট্রপি সর্বশ্রেষ্ঠ বৃদ্ধি দেয়।
ইনপুট
ইনপুটটি ক্রমবর্ধমান, অ-নেতিবাচক পূর্ণসংখ্যার একটি খালি খালি তালিকা। উদাহরণ অন্তর্ভুক্ত [3,3,2,1,0,0], [123,23,1]বা এমনকি [4]। যে কোনও যুক্তিসঙ্গত বিন্যাস অনুমোদিত।
আউটপুট
আউটপুট সত্যবাদী এবং মিথ্যা মানগুলির একটি তালিকা (ইনপুট সমান দৈর্ঘ্য), যেখানে সত্যগুলি সেই বিকল্পগুলির প্রতিনিধিত্ব করে যেখানে আমি সর্বাধিক ব্যাঘাত ঘটাতে চাইলে আমার ভোট দেওয়া উচিত। যদি একাধিক ভোটিং প্যাটার্ন একই এনট্রপি দেয় তবে যে কোনও একটি আউটপুট হতে পারে।
বিজয়ী মানদণ্ড
এটি কোড-গল্ফ, কম বাইট ভাল।
পরীক্ষার কেস
[3,2,1,1] -> [0,0,1,1] (from 1.227 to 1.369)
[3,3,2,1,0,0] -> [0,0,0,1,1,1] (from 1.311 to 1.705)
[123,23,1] -> [0,1,1] (from 0.473 to 0.510)
[4] -> [0] OR [1] (from 0 to 0)
[7,7,6,6,5] -> [0,0,1,1,1] (from 1.602 to 1.608)
[100,50,1,1] -> [0,1,1,1] (from 0.707 to 0.761)
