এই চ্যালেঞ্জটিতে আপনার কাজটি হ'ল এর মতো প্রদত্ত "ম্যাচস্টিক সমীকরণ" বিশ্লেষণ করা ...
... এবং এটি ম্যাচগুলি পুনরায় সাজিয়ে একটি বৈধ সমীকরণে রূপান্তরিত করা যায় কিনা তা খুঁজে বের করার জন্য। যদি তা হয় তবে আপনাকে সর্বনিম্ন সংখ্যাটি চালনা করতে হবে এবং ফলাফলটি সমীকরণ করতে হবে।
ইনপুট
ইনপুটটি এমন একটি স্ট্রিং যা এসটিডিএন থেকে পড়া যায়, একটি ফাংশন আর্গুমেন্ট হিসাবে নেওয়া বা এমনকি কোনও ফাইলেও সংরক্ষণ করা যায়। এটি একটি সমীকরণ যা একটি ম্যাচস্টিক বিন্যাসকে উপস্থাপন করে এবং নিম্নলিখিত EBNF ব্যবহার করে বর্ণনা করা যেতে পারে:
input = term, "=", term ;
term = number | (term, ("+" | "-"), term) ;
number = "0" | (numeralExceptZero , {numeral}) ;
numeralExceptZero = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
numeral = "0" | numeralExceptZero ;
একটি বৈধ ইনপুট জন্য একটি উদাহরণ হতে পারে 3+6-201=0+0+8
।
কার্য
নিম্নলিখিত চিত্রটি বিবেচনা করুন যেখানে প্রতিটি ম্যাচস্টিকের একটি নম্বর নির্ধারিত থাকে:
আমরা এখন প্রতিটি ইনপুট প্রতীকটি নিম্নরূপে সম্পর্কিত ম্যাচস্টিক পজিশনে ম্যাপ করি:
0 ↦ 1,2,3,4,5,6
1 ↦ 4,5
2 ↦ 2,3,5,6,8
3 ↦ 3,4,5,6,8
4 ↦ 1,4,5,8
5 ↦ 1,3,4,6,8
6 ↦ 1,2,3,4,6,8
7 ↦ 4,5,6
8 ↦ 1,2,3,4,5,6,8
9 ↦ 1,3,4,5,6,8
- ↦ 8
+ ↦ 8,10
= ↦ 7,9
প্রতিটি ইনপুট সূত্র ম্যাচস্টিক বিন্যাসে রূপান্তরিত হতে পারে। উদাহরণস্বরূপ, "45 + 6 = 92" সমীকরণটি হয়ে যায়
যেখানে অব্যবহৃত ম্যাচস্টিকগুলি গ্রে আউট করা আছে। আপনার কাজটি হল সমীকরণটিকে বৈধ করার জন্য ন্যূনতম ম্যাচস্টিকের পুনরায় ব্যবস্থা করতে হবে।
আউটপুট
আমরা তিনটি সম্ভাব্য মামলার মধ্যে পার্থক্য করি:
- যদি ইনপুটটি বৈধ না হয় (যেমন এটি উপরের ইবিএনএফকে সন্তুষ্ট করে না), আপনি যা চান আউটপুট।
- অন্যথায়, যদি ম্যাচস্টিকগুলি পুনর্বিন্যাসের মাধ্যমে সমীকরণটিকে বৈধ এক হিসাবে রূপান্তর করার উপায় থাকে তবে আপনাকে ন্যূনতম সংখ্যার পুনর্বিন্যাসের এবং সংশ্লিষ্ট সমীকরণ উভয়ই আউটপুট দিতে হবে । ইনপুট হিসাবে, আউটপুট সমীকরণ অবশ্যই প্রদত্ত EBNF সন্তুষ্ট করতে হবে। উপরের উদাহরণে, সঠিক আউটপুট হবে
এবং । ফলস্বরূপ সমীকরণের জন্য যদি একাধিক সম্ভাবনা থাকে তবে এগুলির যে কোনও একটিকে আউটপুট দিন।
1
46+6=52
- অন্যথায় (সুতরাং যদি ইনপুটটি বৈধ হয় তবে সমীকরণটি সত্য করার কোনও উপায় না থাকে), আপনাকে আউটপুট দিতে হবে
-1
।
বিস্তারিত
- আপনাকে ম্যাচগুলি সরাতে বা যোগ করার অনুমতি নেই। এর অর্থ, যদি ইনপুটটি
n
ম্যাচস্টিকগুলি দিয়ে নির্মিত হয় তবে আউটপুটটিতে অবশ্যই হুবহুn
ম্যাচস্টিক থাকতে হবে। - "খালি" ম্যাচস্টিক-ব্লকগুলি কেবল সমীকরণের শেষে এবং মাঝামাঝি সময়েই অনুমোদিত হয়। সুতরাং, উদাহরণস্বরূপ, বাঁক
7-1=6
মধ্যে7 =6-1
কেবল সরিয়ে-1
বাম দিক থেকে এবং মাত্র 3 দেশলাই কাঠি rearrangements সঙ্গে ডান দিকে এটি যোগ মঞ্জুরিপ্রাপ্ত নয়। যেহেতু আমি এই চ্যালেঞ্জের একটি আকর্ষণীয় অংশ হিসাবে নম্বর থেকে ম্যাচস্টিক পজিশনে ম্যাপিংটি সত্যিই দেখছি না, 20 বাইটের একাধিকের জন্য , আপনি হয়ত
- কোনও ফাইল অ্যাক্সেস করুন যাতে ম্যাপিং
(number/operation ↦ matchstick positions)
কোনও যুক্তিসঙ্গত উপায়ে সংরক্ষণ করা হয়, বা - যদি আপনার প্রোগ্রামিং ল্যাঙ্গুয়েজ কোনও
Map
ডেটাটাইপ সমর্থন করে তবে ধরে নিন যে(number/operation ↦ matchstick positions)
-ম্যাপিংয়ের সাথে পূর্বনির্ধারিত কোনও মানচিত্রে আপনার অ্যাক্সেস রয়েছে। এই মানচিত্রটি উদাহরণস্বরূপ দেখতে পারে:{(0,{1,2,3,4,5,6}),(1,{4,5}),(2,{2,3,5,6,8}),(3,{3,4,5,6,8}), ..., (-,{8}),(+,{8,10}),(=,{7,9})}
- কোনও ফাইল অ্যাক্সেস করুন যাতে ম্যাপিং
উদাহরণ
ইনপুট: 1+1=3
↦ আউটপুট: 1
এবং1+1=2
ইনপুট: 15+6=21
↦ আউটপুট: 0
এবং15+6=21
ইনপুট: 1=7
↦ আউটপুট: -1
ইনপুট: 950-250=750
↦ আউটপুট: 2
এবং990-240=750
ইনপুট: 1-2=9
↦ আউটপুট: 1
এবং1+2=3
ইনপুট: 20 + 3=04
↦ আউটপুট: যে কোনও কিছু
বিজয়ী
এটি কোড-গল্ফ , তাই সংক্ষিপ্ত সঠিক উত্তর (বাইটে) জেতে। প্রথম সঠিক উত্তর পোস্ট হওয়ার এক সপ্তাহ পরে বিজয়ী নির্বাচন করা হবে।
=
(2 ম্যাচস্টিক) এবং -
(1 ম্যাচস্টিক) অবস্থান স্যুইচ করতে পারেন এবং তারা যেখানে আছেন সেখানে সমস্ত সংখ্যা রেখে যেতে পারেন। তবে, যদি 2 টি বাম দিকে সরানো হয় তবে আপনাকে প্রয়োজনীয় পদক্ষেপগুলিও গণনা করতে হবে।
1+1+2=3-6+10
? এবং আউটপুট সম্পর্কে একই প্রশ্ন।
0: 1, 2, 3, 4, 5, 6
ধারাবাহিকতার জন্য যুক্ত করুন