আপনাকে সংখ্যার একটি তালিকা L = [17, 5, 9, 17, 59, 14]
, অপারেটরগুলির একটি ব্যাগ O = {+:7, -:3, *:5, /:1}
এবং একটি নম্বর দেওয়া হবে N = 569
।
কার্য
একটি সমীকরণ আউটপুট L
করুন যা বাম-হাতের সমস্ত সংখ্যা N
এবং ডানদিকে কেবলমাত্র নম্বর ব্যবহার করে। যদি এটি সম্ভব না হয় তবে আউটপুট মিথ্যা। উদাহরণ সমাধান:
59*(17-5)-9*17+14 = 569
সীমাবদ্ধতা এবং স্পষ্টকরণ
- আপনি সংখ্যার সাথে মিল রাখতে পারবেন না (
[13,37]
হিসাবে ব্যবহৃত হতে পারে না1337
) - কেবল প্রাকৃতিক সংখ্যা এবং শূন্য উপস্থিত হবে
L
। - অর্ডারটি
L
কোনও ব্যাপার নয়। - আপনাকে অবশ্যই সমস্ত নম্বর ব্যবহার করতে হবে
L
। - শুধু অপারেটার
+
,-
,*
,/
উপস্থিত হবেO
। O
আপনার প্রয়োজনের তুলনায় আরও বেশি অপারেটর থাকতে পারে তবে কমপক্ষে|L|-1
অপারেটর থাকতে পারে- আপনি প্রতিটি অপারেটরটিকে মান পর্যন্ত কতবার ব্যবহার করতে পারেন
O
। - চারটি অপারেশন
O
হ'ল মানক গাণিতিক ক্রিয়াকলাপ; বিশেষত,/
সঠিক ভগ্নাংশ সহ সাধারণ বিভাগ।
পয়েন্ট
- কম পয়েন্ট, ভাল
- আপনার কোডের প্রতিটি অক্ষর আপনাকে একটি পয়েন্ট দেয়
আপনাকে এমন একটি গলিত সংস্করণ সরবরাহ করতে হবে যা পড়তে সহজ।
পটভূমি
একটি অনুরূপ প্রশ্ন স্ট্যাক ওভারফ্লো উপর অনুরোধ করা হয়েছে। আমি ভেবেছিলাম এটি একটি আকর্ষণীয় কোড-গল্ফ চ্যালেঞ্জ হতে পারে।
গণনীয় জটিলতা
পিটার টেলর মন্তব্যগুলিতে যেমন বলেছিলেন, আপনি এটির সাথে সাবসেটের পরিমাণটি সমাধান করতে পারেন :
- আপনার কাছে উপসেটের যোগফলের উদাহরণ রয়েছে (অতএব পূর্ণসংখ্যার একটি সেট এস এবং একটি সংখ্যা x)
- এল: = এস + [0, ..., 0] (| এস | শূন্যের বার), এন: = এক্স, ও: = {+: | এস | -1, *: | এস | - 1, /: 0, -: 0}
- এখন আমার সমস্যার এই উদাহরণটি সমাধান করুন
- উপসেটের যোগফলের সমাধান হ'ল এস এর সংখ্যা যা শূন্যের সাথে গুণিত হয় না।
যদি আপনি কোনও অ্যালগরিদম খুঁজে পান যা ও (2 ^ n) এর চেয়ে ভাল, তবে আপনি প্রমাণ করেছেন যে পি = এনপি। যেহেতু পি বনাম এনপি হ'ল মিলেনিয়াম প্রাইজ সমস্যা এবং সুতরাং এটির জন্য এক হাজার মার্কিন ডলার মূল্যমান, কারও পক্ষে এর সমাধান পাওয়া খুব কমই। তাই আমি র্যাঙ্কিংয়ের এই অংশটি সরিয়েছি।
পরীক্ষার মামলা
নিম্নলিখিত কেবলমাত্র বৈধ উত্তর নয়, অন্যান্য সমাধান বিদ্যমান এবং এর অনুমতি রয়েছে:
- (
[17,5,9,17,59,14]
,{+:7, -:3, *:5, /:1}
,569
)
=>59 * (17-5)- 9 * 17 + 14 = 569
- (
[2,2]
,{'+':3, '-':3, '*':3, '/':3}
,1
)
=>2/2 = 1
- (
[2,3,5,7,10,0,0,0,0,0,0,0]
,{'+':20, '-':20, '*':20, '/':20}
,16
)
=>5+10-2*3+7+0+0+0+0+0+0+0 = 16
- (
[2,3,5,7,10,0,0,0,0,0,0,0]
,{'+':20, '-':20, '*':20, '/':20}
,15
)
=>5+10+0*(2+3+7)+0+0+0+0+0+0 = 15
/
≡ div
), কেবলমাত্র ভাসমান-বিন্দু এবং আশার জন্য কোনও বৃত্তাকার-ত্রুটি নেই ...?
5+10+2*3+7*0+0...
m = |L|
? যদি হ্যাঁ, আপনি কীভাবে রানটাইমটি সেই তালিকার আকারের উপর নির্ভর করতে পারবেন না? উদাহরণস্বরূপ[2,2],[+,+,...,+,/],1
,। আসলে, যেহেতু n হ'ল হ'ল (এম), আপনি কেবল এটি এম এর ক্ষেত্রে লিখতে পারেন।