চ্যালেঞ্জ
আপনি কোয়েট বিটা নামে একটি আশ্চর্যজনক পরিষেবাটির মালিক , যা ব্যবহারকারীরা ইন্টারনেটে তার কাছে পাঠানো গণিত প্রশ্নের জাদুর উত্তর দেয়।
তবে দেখা যাচ্ছে, ব্যান্ডউইথ ব্যয়বহুল। আপনার দুটি পছন্দ আছে, হয় একটি " কোयोোট বিটা প্রো" তৈরি করুন বা এটি সমাধানের জন্য কোনও উপায় সন্ধান করুন। সম্প্রতি, কেউ জিজ্ঞাসা করেছে (x + 2)
। ক্লায়েন্ট প্রেরণ করতে পারে না x+2
, এবং ব্যবহারকারী কোনও পার্থক্য দেখতে পাবে না?
কাজটি
আপনার কাজ হ'ল গণিতের ভাবগুলি "মাইনাইফ" করা। একটি ইনপুট এক্সপ্রেশন দেওয়া, আপনি অবশ্যই সাদা বাক্স এবং বন্ধনীগুলি থেকে মুক্তি পাবেন যতক্ষণ না এটি একই ইনপুটটির ন্যূনতম উপস্থাপনা দেয়। এসোসিয়েটিভ ক্রিয়াকলাপগুলির আশেপাশে প্রথম বন্ধনী সংরক্ষণ করা দরকার।
এখানে দেওয়া শুধুমাত্র অপারেটার হয় +
, -
, *
, /
, এবং ^
(exponentiation), মান গাণিতিক associativity এবং প্রাধান্য দিয়ে। ইনপুটটিতে প্রদত্ত একমাত্র শ্বেতস্থানটি আসল স্থানের অক্ষর হবে।
নমুনা ইনপুট / আউটপুট
Input | Output
------------|--------------
(2+x) + 3 | 2+x+3
((4+5))*x | (4+5)*x
z^(x+42) | z^(x+42)
x - ((y)+2) | x-(y+2)
(z - y) - x | z-y-x
x^(y^2) | x^y^2
x^2 / z | x^2/z
- (x + 5)+3 | -(x+5)+3
স্কোরিং
ইনপুট / আউটপুট যে কোনও পছন্দসই পদ্ধতি ব্যবহার করতে পারে। বাইটের মধ্যে ক্ষুদ্রতম প্রোগ্রামটি জিতল।
ঠিক বিট
Exponentiation সঠিক সাহচর্যমূলক এবং মান গণিতের অগ্রাধিকার অনুসরণ করে (সর্বোচ্চ হচ্ছে) being একটি বৈধ সংখ্যাগত আক্ষরিক হয় /[0-9]+/
, এবং একটি বৈধ পরিবর্তনশীল আক্ষরিক হয় /[a-z]+/
। অক্ষরের দৈর্ঘ্য 1-এর বেশি হওয়া সত্ত্বেও একটি একক ভেরিয়েবল আক্ষরিক একটি একক মানকে উপস্থাপন করে।
"সহযোগী ক্রিয়াকলাপগুলির আশেপাশের প্রথম বন্ধনীগুলি সংরক্ষণ করা দরকার না" এর অর্থ যা আউটপুটটিতে এমন একটি অভিব্যক্তি থাকা উচিত যা ফলস্বরূপ একটি অভিন্ন গাছের ফলস্বরূপ, সংযোজনীয় ক্রিয়াকলাপগুলি পুনরায় সাজানো যেতে পারে exception
/[a-z]+/
অর্থ হল যে জংশন পজিশনের দ্বারা গুণনটি ab
নিষিদ্ধ করা হয়েছে?
2+(3+4)
আছে 2+3+4
, পরিবর্তন করতে চান ? এটি পার্স গাছ পরিবর্তন করে।
x^(y/2)=x^y/2
; exponentiation একটি উচ্চতর অর্ডার অগ্রাধিকার আছে, আগে x^y/2=(x^y)/2
,।
Prompt X:expr(X)
টিআই-বেসিক জমা দিতে যাচ্ছিলাম তবে আপনি সহজ করতে পারবেন না :(