কোডের নাগেটস
এটি একটি কাল্পনিক পরিস্থিতি যেখানে এটি শুক্রবার সন্ধ্যা, এবং আপনি স্বাভাবিক গল্ফিং বন্ধুরা আপনার পছন্দের শখে অংশ নিতে আমন্ত্রণ জানিয়েছেন: কোড গল্ফিং। তবে এটি যেমন মস্তিষ্ক-নিকাশী কাজ, তাই আপনাকে গ্রুপের জন্য কিছু মস্তিষ্কের খাবার বাছাই করতে হবে যাতে আপনি আপনার কোডের বাইরে যতটা সম্ভব গল্ফ করতে পারেন।
এখন, সবার প্রিয় নাস্তা হ'ল মুরগির নাগেটস, তবে একটি সমস্যা রয়েছে: সেগুলির একটিও প্যাক নেই যা প্রত্যেকের চাহিদা পূরণ করে। সুতরাং, যেহেতু আপনি ইতিমধ্যে গল্ফিং মুডে রয়েছেন, তাই আপনি এমন একটি প্রোগ্রাম তৈরি করার সিদ্ধান্ত নিয়েছেন যা প্রত্যেকের নাগেটের প্রয়োজনীয়তাগুলি পূরণ করতে সক্ষম হতে আপনাকে কী প্যাকগুলি কিনতে হবে তা নির্ধারণ করে।
চিকেন নুগেট প্যাকের আকারগুলি পুরো জায়গা জুড়ে রয়েছে এবং আপনি বিশ্বের কোথায় থাকেন তার উপর নির্ভর করে স্ট্যান্ডার্ড মাপগুলিও পরিবর্তিত হয়। যাইহোক, নিকটতম [স্থান যা নাগেট পরিবেশন করে] নীচের আকারের ন্যাগেট প্যাকগুলি স্টক করে:
4, 6, 9, 10, 20, 40
এখন আপনি খেয়াল করতে পারেন যে আপনি কিছু নগেটের সংমিশ্রণটি অর্ডার করতে পারবেন না। উদাহরণস্বরূপ, 11অংশটিতে সম্ভব নয়, যেহেতু সেখানে কোন সমন্বয় যে সমান 11ঠিক। যাইহোক, যদি আপনি করতে পারেন 431 প্যাক বুঝিয়ে 20, 1 প্যাক 10, 1 প্যাক 9এবং 1 প্যাক 4,
20 + 10 + 9 + 4 = 43 (597)
যেখানে 597প্রতিটি পদ বর্গক্ষেত্র এবং একসাথে যুক্ত হয় (ইঙ্গিত: অনুকূল সমাধানটি এটি সর্বোচ্চ মান হিসাবে থাকে) । বানানোর অন্যান্য উপায় অবশ্যই রয়েছে 43, তবে আপনি জানেন যে, প্যাকের প্রতি আরও বেশি কড়া, এটি প্রতি নট সস্তার হয়ে যায়। সুতরাং, আপনি নিজের ব্যয়কে হ্রাস করার জন্য সর্বনিম্ন সংখ্যক প্যাক এবং সর্বাধিক পরিমাণে কিনতে চান।
কাজটি
আপনার এমন একটি প্রোগ্রাম বা ফাংশন তৈরি করা উচিত যা প্রতিটি ব্যক্তির প্রয়োজনীয়তার সাথে সঙ্গতিপূর্ণ সংখ্যার একটি তালিকা গ্রহণ করে। তারপরে আপনার চিকেন নੱਗজেট কিনতে সবচেয়ে ব্যয়বহুল। ক্রমটি গণনা করা এবং মুদ্রণ করা উচিত । সবচেয়ে খরচ কার্যকর α অর্ডার সমন্বয় যার দ্বারা প্রতিটি পরিমাণ বর্গের সমষ্টি সর্বোচ্চ হয়। যদি একেবারে অংশটিতে পুরোপুরি কিনতে কোন উপায় নেই, আপনাকে অবশ্যই প্রিন্ট এর মত falsy মান , , , অথবা যাই হোক না কেন আপনার ভাষায় পাওয়া যায়।0FalseImpossible!
আই / ও উদাহরণ:
[2 7 12 4 15 3] => [20 10 9 4]
1, 1, 2, 1 => False
6 5 5 5 5 5 9 => 40
[6, 4, 9] => 9 10
1 => 0
199 => 40, 40, 40, 40, 20, 10, 9
2 => Impossible!
এখানে প্রথম 400 টির জন্য আদর্শ সমাধানগুলির তালিকা রয়েছে Note নোট করুন এগুলি ফর্ম্যাট করা হয়নি যে আমি কীভাবে আপনার আশা করব, প্রতিটি tupleফর্মটিতে রয়েছে (N lots of M)।
বিধি
- কোনও মানক ফাঁক নেই।
FrobeniusSolveম্যাথমেটিকায় যেমন সমস্ত বা সংখ্যাগরিষ্ঠ কাজটি অন্তর্নির্মিত ফাংশনগুলির ব্যবহার নয় ।
α - একটি উদাহরণ দিয়ে এটি স্পষ্ট করার জন্য, আপনি এটি দ্বারা 43ও তৈরি করতে পারেন 4 + 6 + 6 + 9 + 9 + 9 = 43 (319), তবে এটি অনুকূল হবে না, এবং এইভাবে একটি ভুল আউটপুট হবে না কারণ স্কোরগুলির যোগফল আমার পরিচিতির সংমিশ্রণের চেয়ে কম। মূলত, উচ্চতর স্কোয়ার = কম ব্যয় = সবচেয়ে ব্যয়বহুল।