হাই স্কুল থেকে আপনার পুরানো ত্রিকোণমিতির নোটগুলি খনন করার সময়! চ্যালেঞ্জটি হ'ল বিভিন্ন ত্রিভুজগুলির অজানা দিক এবং কোণগুলি সমাধান করা। এবং কোড গল্ফের প্রচলিত হিসাবে, ক্ষুদ্রতম কোডিং কোড জিততে পারে।
এটি তুচ্ছ সমস্যা নয়; অজগরটিতে আমার রেফারেন্স বাস্তবায়ন বর্তমানে 838 837 টি অক্ষরের নিচে রয়েছে তবে আমি নিশ্চিত আপনি গল্ফ সমাধানগুলি আরও ছোট আকারে সক্ষম করতে পারবেন।
অতিরিক্তভাবে, যদি আপনি আটকে থাকেন, উইকিপিডিয়ায় এই বিভাগটি আপনাকে যেতে হবে: ত্রিভুজ: পক্ষ এবং কোণগুলি গণনা করা ।
ইনপুট
নিম্নলিখিত ত্রিভুজটি এই চ্যালেঞ্জটিতে ব্যবহৃত পক্ষগুলির এবং কোণগুলির নাম দেখায়। নোট করুন যে পাশগুলি ছোট হাতের এবং কোণগুলি বড় হাতের।
stdin
কমান্ড-লাইন আর্গুমেন্ট (আপনার পছন্দ) হিসাবে বা ইনপুটটি ছয়টি স্থান-বিভাজিত মান হিসাবে দেওয়া হয় । ছয়টি মান উভয় দিক a, b, c
এবং কোণগুলির সাথে মিলিত হয় A, B, C
। অজানা পক্ষগুলি প্রশ্ন চিহ্ন হিসাবে দেওয়া হয় ( ?
)। ইনপুট এবং আউটপুট উভয় কোণই রেডিয়ানে থাকতে হবে। আপনি ধরে নিতে পারেন যে ইনপুট মানগুলি সঠিক (আপনার কোনও কিছুরই বৈধতা লাগবে না)। আপনি এও অনুমান করতে পারেন যে ইনপুট ত্রিভুজটি অ-অবক্ষয়যুক্ত, এবং সমস্ত দিক এবং কোণগুলি ননজারো।
নিম্নলিখিত উদাহরণে ইনপুট আপনাকে বলে যে পাশ a
হয় 8
, পাশের b
হয় 12
এবং কোণ A
হয় 0.5
রেডিয়ানে:
8 12 ? 0.5 ? ?
আউটপুট
আউটপুট ইনপুট হিসাবে একই বিন্যাসে দেওয়া হয় - ছয়টি স্পেস-বিভাজিত নম্বর stdout
। একমাত্র ব্যতিক্রম হ'ল যখন ইনপুট ত্রিভুজটি সমাধান করা সম্ভব হয় না - তারপরে "No solution"
অবশ্যই স্ট্রিংটি লিখতে হবে stdout
। যদি দুটি সমাধান সম্ভব হয় তবে সেগুলি উভয়েরই মধ্যে একটি নতুন লাইনের সাথে আউটপুট করা হয়।
নিম্নলিখিত ইনপুট জন্য আউটপুট নিম্নলিখিত:
8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388
8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714
আউটপুটটিতে প্রচুর নির্ভুলতা থাকা দরকার না, তবে কমপক্ষে একটি দশমিক দশমিক তিন ভাগ প্রয়োজন।
বিধি
- ইনপুটটি পাঠানো হয়
stdin
বা কমান্ড-লাইন আর্গুমেন্ট থেকে - আউটপুট লিখিত হয়
stdout
- প্রদত্ত ইনপুট দিয়ে যদি দুটি সমাধান সম্ভব হয় তবে উভয়কেই আউটপুট দিন
- এক বা দুটি পরিষ্কার সমাধান পেতে খুব কম তথ্য থাকলে, এটিকে
"No solution"
কেস বিবেচনা করুন - কোনও অন্তর্নির্মিত বা পূর্ব-বিদ্যমান কোড ব্যবহার করা যাবে না (অবশ্যই আপনি ট্রিগ ফাংশন ব্যবহার করতে পারেন, তবে "
solveTriangle
" বা এ জাতীয় নয়) - সংক্ষিপ্ততম কোড জিতেছে
পরীক্ষার মামলা
ভিতরে 3 4 5 ? ? ?
আউট 3.0 4.0 5.0 0.643501108793 0.927295218002 1.57079630572
ভিতরে ? 4 ? 0.64 0.92 1.57
আউট 3.00248479301 4.0 5.02764025486 0.64 0.92 1.57
ভিতরে ? ? 5 ? 0.92 ?
আউট No solution
ভিতরে ? ? 5 ? 0.92 1.57
আউট 3.03226857833 3.97800936148 5.0 0.65159265359 0.92 1.57
ভিতরে 8 12 ? 0.5 ? ?
আউট (দুটি সমাধান)
8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388
8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714
ভিতরে 8 12 ? ? .5 ?
আউট 8.0 12.0 18.3912222133 0.325325285223 0.5 2.31626736837