গণিত, 84 বাইট
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&
ব্যাখ্যা
স্ট্রিং সহ আরও "গাণিতিক"! সংযুক্ত উত্তরের মতো এটিও এই সত্যের উপর ভিত্তি করে যে আপনি গাণিতিকায় স্ট্রিংগুলিকে "গুণ" করতে পারেন যা এগুলিকে মূল্যহীন (দুইটি স্বাক্ষরিত ভেরিয়েবলগুলি গুণিত করার অনুরূপ x*y
) রেখে দেবে, তবে ম্যাথমেটিকা একটি বিভাগে কারণ বাতিলকরণের মতো মৌলিক সরলকরণ প্রয়োগ করবে।
সুতরাং আমরা মধ্যে পণ্য হিসাবে তিন জোড়া মজুত করে শুরু x
, y
, z
যথাক্রমে, এবং তাদের সব একসাথে গুন:
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")
এটি মূল্যায়ন করে
"freedom" "ignorance" "peace" "slavery" "strength" "war"
(ম্যাথমেটিকা স্বয়ংক্রিয়ভাবে কারণগুলি সাজায়, তবে আমরা অর্ডারটি যত্ন করি না))
ম্যাথমেটিকা কারণগুলি বাতিল করে দেওয়ার কারণে আমরা যে শব্দটি দিয়ে চাই না তা সরাতে আমরা ইনপুট দ্বারা এটি ভাগ করি .../#
। উদাহরণস্বরূপ যদি ইনপুটটি "peace"
আমাদের সাথে শেষ হত:
"freedom" "ignorance" "slavery" "strength" "war"
পরিশেষে, আমরা প্রতিটি দ্বারা substituting, জোড়া আমরা আগ্রহী নন, তাহলে পরিত্রাণ পেতে x
, y
এবং z
সঙ্গে 1
। আবার ম্যাথামেটিকার সরলকরণটিতে 1*a
সর্বদা লিক্স থাকে a
। এই অংশটি দিয়ে করা হয়:
/.x->1/.y->1/.z->1
খুব সুন্দর বিষয় হ'ল ম্যাথেমেটিকা জানে যে গুণটি Orderless
তাই এটি দুটি কারণই বিবেচনা না করেই তারা পণ্য সংলগ্ন কিনা তা খুঁজে পাবে। কেবলমাত্র শব্দটি যা ইনপুটটির বিপরীতে রয়েছে সেগুলি আর পণ্যটির জুড়ি তৈরি হয় না, যাতে কোনওটি সরানো হয় না এবং একমাত্র আউটপুট হিসাবে থেকে যায়।