একটি সংখ্যা প্রকাশ করুন
ষাটের দশকে ফরাসী টিভি গেম শো "ডেস শিফ্রেস এট ডেস লেট্রেস" (ডিজিটস অ্যান্ড লেটারস) আবিষ্কার করেছিল। শোটির ডিজিটস-অংশের লক্ষ্যটি ছিল কিছু আধা-এলোমেলোভাবে নির্বাচিত সংখ্যা ব্যবহার করে নির্দিষ্ট 3-অঙ্কের লক্ষ্য সংখ্যায় যতটা সম্ভব আপনি কাছে আসা। প্রতিযোগীরা নিম্নলিখিত অপারেটরগুলি ব্যবহার করতে পারবেন:
- উপসংহার (1 এবং 2 12)
- সংযোজন (1 + 2 হয় 3)
- বিয়োগ (5 - 3 = 2)
- বিভাগ (8/2 = 4); ফলাফলটি যদি প্রাকৃতিক সংখ্যা হয় তবে বিভাগের অনুমতি রয়েছে
- গুণ (2 * 3 = 6)
- ক্রিয়াকলাপগুলি, ক্রিয়াকলাপগুলির নিয়মিত নজরে ওভাররাইড করতে: 2 * (3 + 4) = 14
প্রতিটি প্রদত্ত নম্বর কেবল একবার ব্যবহার করা যেতে পারে বা মোটেও নয়।
উদাহরণস্বরূপ, 728 নম্বরটি সংখ্যার সাথে হুবহু মিলে যায়: 6, 10, 25, 75, 5 এবং 50 নিম্নলিখিত প্রকাশের সাথে:
75 * 10 - ( ( 6 + 5 ) * ( 50 / 25 ) ) = 750 - ( 11 * 2 ) = 750 - 22 = 728
এই কোড চ্যালেঞ্জে, আপনাকে নির্দিষ্ট লক্ষ্য সংখ্যার যতটা সম্ভব কাছাকাছি একটি অভিব্যক্তি খুঁজে বের করার কাজটি দেওয়া হবে। যেহেতু আমরা একবিংশ শতাব্দীতে বাস করছি, আমরা 60 এর দশকের তুলনায় আরও বড় লক্ষ্য সংখ্যা এবং আরও সংখ্যার সাথে কাজ করার জন্য প্রবর্তন করব।
বিধি
- অনুমোদিত অপারেটর: কনটেনটেশন, +, -, /, *, (এবং)
- কনকনেটেশন অপারেটরের কোনও চিহ্ন নেই। শুধু সংখ্যাগুলি একত্রিত করুন।
- কোনও "বিপরীতমুখী কনটেন্টেশন" নেই। 69 হ'ল 69 এবং এটি 6 এবং 9 তে বিভক্ত হতে পারে না।
- লক্ষ্য নম্বরটি একটি ধনাত্মক পূর্ণসংখ্যার এবং সর্বাধিক 18 সংখ্যা রয়েছে।
- কাজ করার জন্য কমপক্ষে দুটি সংখ্যা এবং সর্বাধিক 99 নম্বর রয়েছে। এই সংখ্যাগুলি সর্বাধিক 18 সংখ্যার সাথে ধনাত্মক পূর্ণসংখ্যাও।
- এটি সম্ভব (আসলে বেশ সম্ভবত) যে সংখ্যার সংখ্যা এবং অপারেটরগুলির ক্ষেত্রে লক্ষ্য সংখ্যাটি প্রকাশ করা যায় না। লক্ষ্যটি যতটা সম্ভব বন্ধ করা।
- প্রোগ্রামটি একটি যুক্তিসঙ্গত সময়ে শেষ করা উচিত (একটি আধুনিক ডেস্কটপ পিসিতে কয়েক মিনিট)।
- স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।
- আপনার প্রোগ্রামটি এই ধাঁধার "স্কোরিং" বিভাগে পরীক্ষার সেটটির জন্য অনুকূলিত করা যাবে না । আমি যদি এই নিয়ম লঙ্ঘন করে সন্দেহ করি তবে আমি পরীক্ষা সেটটি পরিবর্তন করার অধিকার সংরক্ষণ করি।
- এই না একটি codegolf।
ইনপুট
ইনপুটটিতে এমন একটি সংখ্যার অ্যারে থাকে যা কোনও সুবিধাজনক উপায়ে ফর্ম্যাট করা যায়। প্রথম সংখ্যাটি লক্ষ্য নম্বর। বাকি সংখ্যাগুলি সেই সংখ্যা যা আপনার সাথে লক্ষ্য নম্বরটি গঠনের জন্য কাজ করা উচিত।
আউটপুট
আউটপুট জন্য প্রয়োজনীয়তা হয়:
- এটি এমন একটি স্ট্রিং হওয়া উচিত যা এতে অন্তর্ভুক্ত:
- ইনপুট সংখ্যাগুলির কোনও উপসেট (লক্ষ্য সংখ্যা বাদে)
- অপারেটর সংখ্যা
- আমি ফাঁকা জায়গা ছাড়াই আউটপুটটিকে একক লাইন হিসাবে পছন্দ করি, তবে যদি আপনার অবশ্যই হয় তবে আপনি উপযুক্ত হিসাবে দেখতে ফাঁকা স্থান এবং নিউলাইনগুলি যুক্ত করতে পারেন। কন্ট্রোলিং প্রোগ্রামে এগুলি উপেক্ষা করা হবে।
- আউটপুটটি একটি বৈধ গাণিতিক এক্সপ্রেশন হওয়া উচিত।
উদাহরণ
পাঠযোগ্যতার জন্য, এই সমস্ত উদাহরণগুলির একটি সঠিক সমাধান রয়েছে এবং প্রতিটি ইনপুট নম্বর ঠিক একবার ব্যবহার করা হয়।
ইনপুট: 1515483, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
আউটপুট:111*111*(111+11+1)
ইনপুট: 153135, 1, 2, 3, 4, 5, 6, 7, 8, 9
আউটপুট:123*(456+789)
ইনপুট: 8888888888, 9, 9, 9, 99, 99, 99, 999, 999, 999, 9999, 9999, 9999, 99999, 99999, 99999, 1
আউটপুট:9*99*999*9999-9999999-999999-99999-99999-99999-9999-999-9-1
ইনপুট: 207901, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
আউটপুট:1+2*(3+4)*(5+6)*(7+8)*90
ইনপুট: 34943, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
আউটপুট: 1+2*(3+4*(5+6*(7+8*90)))
তবে বৈধ আউটপুটটি হ'ল:34957-6-8
স্কোরিং
একটি প্রোগ্রামের পেনাল্টি স্কোরটি নীচের টেস্টসেটের জন্য প্রকাশের আপেক্ষিক ত্রুটির যোগফল।
উদাহরণস্বরূপ, যদি লক্ষ্য মান 125 হয় এবং আপনার অভিব্যক্তি 120 দেয়, তবে আপনার পেনাল্টি স্কোর অ্যাবস (1 - 120/125) = 0,04।
সর্বনিম্ন স্কোর (সর্বনিম্ন মোট আপেক্ষিক ত্রুটি) সহ প্রোগ্রামটি জয়ী। যদি দুটি প্রোগ্রাম সমানভাবে শেষ হয়, তবে প্রথম জমাটি জিতবে।
শেষ অবধি, টেস্টসেট (৮ টি কেস):
14142, 10, 11, 12, 13, 14, 15
48077691, 6, 9, 66, 69, 666, 669, 696, 699, 966, 969, 996, 999
333723173, 3, 3, 3, 33, 333, 3333, 33333, 333333, 3333333, 33333333, 333333333
589637567, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
8067171096, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199
78649377055, 0, 2, 6, 12, 20, 30, 42, 56, 72, 90, 110, 132, 156, 182, 210, 240, 272, 306, 342, 380, 420, 462, 506, 552, 600, 650, 702, 756, 812, 870, 930, 992
792787123866, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169
2423473942768, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 2000000, 5000000, 10000000, 20000000, 50000000
পূর্ববর্তী অনুরূপ ধাঁধা
এই ধাঁধাটি তৈরি করে এবং এটি স্যান্ডবক্সে পোস্ট করার পরে, আমি পূর্ববর্তী দুটি ধাঁধাতে অনুরূপ কিছু (তবে একই নয়!) লক্ষ্য করেছি: এখানে (কোনও সমাধান নেই) এবং এখানে । এই ধাঁধাটি কিছুটা পৃথক, কারণ এটি কনটেনটেশন অপারেটরের সাথে পরিচয় করিয়ে দেয়, আমি সন্ধান করতে চাই না এবং সঠিক মিল চাই না এবং আমি নিষ্ঠুর বল ছাড়াই সমাধানের কাছাকাছি আসার কৌশলগুলি দেখতে চাই। আমি মনে করি এটি চ্যালেঞ্জিং।