मैथेमेटिका, 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"
(गणितज्ञ स्वचालित रूप से कारकों को हल करते हैं, लेकिन हम आदेश की परवाह नहीं करते हैं।)
Mathematica कारकों को रद्द करने के बाद से हम उस शब्द को हटाने के लिए इनपुट द्वारा विभाजित करते हैं, जिसे हम नहीं चाहते .../#
हैं। उदाहरण के लिए यदि इनपुट था "peace"
तो हम इसके साथ समाप्त हो जाएंगे:
"freedom" "ignorance" "slavery" "strength" "war"
अंत में, हम में से प्रत्येक के प्रतिस्थापन, जोड़े हम में कोई दिलचस्पी नहीं कर रहे हैं से छुटकारा पाने के x
, y
और z
साथ 1
। फिर, मैथेमेटिका का सरलीकरण 1*a
हमेशा उसमें रहता है a
। इस भाग के साथ किया जाता है:
/.x->1/.y->1/.z->1
अच्छी बात यह है कि गणितज्ञ जानता है कि गुणन Orderless
इतना है कि इससे दो कारक मिलेंगे चाहे वे उत्पाद में सटे हों या नहीं। केवल शब्द जो इनपुट के विपरीत है, अब उत्पाद में युग्मित नहीं है, ताकि किसी को हटाया न जाए और एकमात्र आउटपुट के रूप में बना रहे।