এই চ্যালেঞ্জ কিন্তু একটি ভাল অনুমান সঙ্গে।
ফটকা খেলা
আপনার প্রোগ্রামটি একটি একক ভেরিয়েবল x
এবং এর মান আউটপুট সমেত একটি রৈখিক সমীকরণ নেবে x
।
ইনপুট / পার্সিং
- ইনপুটটিতে কেবল সংখ্যা, অপারেটর, প্রথম বন্ধনী (
()
)x
, এবং একটি=
চিহ্ন থাকবে (এর অর্থ কোনও সাদা জায়গা নেই)। - প্যারেন্টেসিস সর্বদা ভারসাম্যপূর্ণ হবে।
- সর্বদা কমপক্ষে 1 থাকবে
x
। একটিx
একটি সংখ্যা পূর্বে হতে পারে। - সমস্ত সমীকরণের ঠিক একটি ফলাফল হবে।
এই পদক্ষেপগুলি অনুসরণ করে একটি সংখ্যার সংজ্ঞা দেওয়া যেতে পারে। বেশ কয়েকটি Regex দ্বারা সংজ্ঞায়িত করা যেতে পারে: -?(\d+(\.\d+)?|\.\d+)
।
আপনি যদি রেজেক্স না বলেন: একটি অঙ্ক হিসাবে সংজ্ঞায়িত করা হয় 0-9
- এটির
-
শুরুতে এটিতে নেতিবাচক ইঙ্গিত দেওয়া হতে পারে - তারপরে কিছু অঙ্ক থাকতে পারে। যদি তারা কোনও অঙ্ক না হয় তবে দশমিক পয়েন্ট থাকবে
- যদি একটি দশমিক বিন্দু বিদ্যমান থাকে তবে কমপক্ষে একটি অঙ্ক এটি অনুসরণ করবে
বৃহত্তম নম্বর / মানটি আপনার ভাষার দক্ষতা দ্বারা সংজ্ঞায়িত করা হবে।
একটি অপারেটর : কোনো হয় +-*/
, তারা সবসময় সংখ্যার মধ্যে দেখানো হবে, এবং বা প্রথম বন্ধনী
এর অর্থ (5)(5)
সরলতার জন্য কোনও বৈধ ইনপুট নয়।
প্যারেন্টেসিসে সর্বদা তাদের ভিতরে একটি বৈধ এক্সপ্রেশন (সংখ্যার এবং / বা অপারেটরগুলির একটি বৈধ সংমিশ্রণ) থাকবে। "ভারসাম্যযুক্ত" প্রথম বন্ধনী হিসাবে সংজ্ঞায়িত করা হয় যেহেতু প্রত্যেকটির (
একটি সম্পর্কিত ক্লোজিং থাকবে)
মূল্যায়ন
- ক্রিয়াকলাপের ক্রম অনুসরণ করা উচিত এবং এর পূর্বরূপগুলি (সর্বোচ্চ থেকে সর্বনিম্ন):
- প্যারেনথেসিস (সবচেয়ে গভীরভাবে প্রথমে নেস্টেড)
- গুণ ও বিভাগ
- সংযোজন এবং বিয়োগ
- যদি একই নজিরযুক্ত দুটি অপারেটর দেখা দেয় তবে আপনার বামে -> ডানদিকে যেতে পছন্দ করা উচিত
আউটপুট
আপনার ফলাফলটি কোনওভাবে আউটপুট করা উচিত। যদি আপনি কেবলমাত্র সংখ্যার ফলাফল আউটপুট না করেন তবে কীভাবে আউটপুট আউটপুট হয় তা আপনার উত্তরটিতে পরিষ্কার করুন। আপনার আউটপুট ফর্ম্যাটটি সামঞ্জস্যপূর্ণ হওয়া উচিত। আউটপুট দশমিক হতে পারে, তবে এটি সর্বদা যুক্তিযুক্ত হবে, যথার্থতা আপনার ভাষার নির্ভুলতার মধ্যে সীমাবদ্ধ। কেবলমাত্র যদি আপনার ভাষা ভাসমান পয়েন্ট গণিত সমর্থন করে না, আপনাকে সমর্থন করার প্রয়োজন হবে না।
বিধি
- বিল্ট-ইনগুলি এই কাজটিকে তুচ্ছ করে তোলার অনুমতি দেওয়া হয়েছে তবে , আপনাকে অবশ্যই
[uses built-in]
উত্তরের শিরোনামে স্পষ্টভাবে যুক্ত করতে হবে । এটি আপনার উত্তরকে বিজয়ী করা থেকে রেহাই দেয় - একটি "বিল্ট-ইনগুলি এই কার্যকে তুচ্ছ করে দেখানো" যে কোনও:
- এমন কিছু যা একটি সমীকরণ নেয় এবং একটি / ভেরিয়েবলের মানকে আউটপুট করে
- এমন কিছু যা সমীকরণকে সম্পূর্ণ সরল করে দেবে
- পার্সিংয়ের
eval
উল্লেখযোগ্য পরিমাণে করতে কোনও সম্পর্কিত ফাংশন ব্যবহার করা বা করা।eval
রৈখিক সমীকরণগুলি সমাধান করতে (ইনপুটটিতে সর্বনিম্ন পরিবর্তন সহ) ব্যবহার করা হয় এবং সম্পর্কিত ফাংশনগুলির ব্যবহার নিষিদ্ধ করা হয়। - যদি আপনার সন্দেহ হয় তবে কেবল একটি মন্তব্যে জিজ্ঞাসা করুন।
- যে বিল্ট-ইনগুলি সমীকরণটিকে পার্স করে তা অনুমোদিত
উদাহরণ
3+4=x
7
4+x=5
1
3+3*3=x
12
3x-4=7+2x
11
3--1=x
4
3*(2+4x)=7x-4
-2
1.2+2.3x=5.8
2
10=4x
2.5
ইনভ্যালিড ইনপুট:
(5)(4)=x no operator between (5) and (4)
5(x+3)=2 no operator 5 and (...)
x=y the only variable is x
4=3 there is no x
x+3=x-7 no solution
x=x infinite solutions
+5=x + is not an unary operator. -5=x would be valid though
1/(x-3)=5 Nonlinear
3/x Nonlinear
eval
গণনা কি চ্যালেঞ্জকে তুচ্ছ হিসাবে চিহ্নিত করে? এছাড়াও, new Function(...)
গণনা ফর্ম হবে ?