टीआई-बेसिक (TI-84 Plus CE), 31 बाइट्स
.5(Ans+1+remainder(Ans+1,2)-4not(remainder(Ans,4)))i^(2Ans
टीआई-बेसिक एक टोकन भाषा है और यहां इस्तेमाल किया जाने वाला प्रत्येक टोकन एक बाइट है, सिवाय remainder(
दो के।
यह 1-अनुक्रमित संस्करण का उपयोग करता है।
स्पष्टीकरण:
एक पैटर्न है जो हर चार संख्याओं को दोहराता है। 1-अनुक्रमित संस्करण में, यह है: - (x + 1) / 2, (x + 1) / 2, - (x + 1) / 2, (x-1) / 2 इनपुट मूल्य x के लिए। इसे एक टुकड़ा-परिभाषित फ़ंक्शन के रूप में दर्शाया जा सकता है।
f (x) = - (x + 1) / 2 यदि x 4 1 mod 4; (x + 1) / २ यदि x + 2 mod 4; - (x + 1) / 2 यदि x 4 3 mod 4; (x-1) / 2 यदि x-0 mod 4
क्योंकि "x mod 1 mod 4" और "x 4 3 mod 4" भाग समान हैं, हम उन्हें "x" 1 mod 2 "में जोड़ सकते हैं।
अब टुकड़ा करने की क्रिया है:
f (x) = - (x + 1) / 2 यदि x 2 1 mod 2; (x + 2) / २ यदि x + 2 mod 4; (x-2) / 2 यदि x-0 mod 4
यह वह जगह है जहां मैं इसे वास्तविक आदेशों में तोड़ना शुरू करता हूं। चूँकि मान भी अनुक्रमित के लिए सकारात्मक है और विषम के लिए ऋणात्मक है, इसलिए हम (-1) ^ x का उपयोग कर सकते हैं। हालांकि, टीआई-बेसिक मेंi^(2X
(5 बाइट्स) से कम है(-1)^Ans
(6 बाइट्स) । ध्यान दें कि संचालन के आदेश के कारण कोष्ठक की आवश्यकता होती है।
अब जब हमारे पास विषम इनपुट को नकारने का तरीका है, हम मॉड्स पर जाते हैं (बाद में नेगेटिंग को वापस जोड़ते हुए)। मैंने एक अजीब इनपुट के मामले को डिफ़ॉल्ट बना दिया है, इसलिए हम इसके साथ शुरू करते हैं.5(Ans+1)
।
यहां तक कि इनपुट के मामले को ठीक करने के लिए, कोष्ठक में केवल एक संख्या जोड़ें, लेकिन केवल जब x mod 0 mod 2। इसे इस रूप में प्रस्तुत किया जा सकता है .5(Ans+1+remainder(Ans+1,2))
या के.5(Ans+1+not(remainder(Ans,2)))
, लेकिन उनके पास एक ही बाइट गिनती है, इसलिए यह कोई फर्क नहीं पड़ता।
मल्टीपल ऑफ़ -4 इनपुट के मामले को ठीक करने के लिए, हमें कोष्ठकों में संख्या से 3 घटाना होगा, लेकिन एक और 1 भी क्योंकि 4 के सभी गुणक सम हैं, जो हमारे पिछले चरण से एक जोड़ देगा, इसलिए अब हमारे पास है .5(Ans+1+remainder(Ans+1,2)-4not(remainder(Ans,4)))
।
अब, पूर्ण कार्यक्रम प्राप्त करने के लिए केवल साइन-निर्धारण वाले भाग से अंत तक का सामना करें।