फ़्लोटिंग-पॉइंट संख्याओं में एन्कोडेड लुकअप तालिका का उपयोग करें
थोड़ा उन्नत टिप:
छोटे लुकअप टेबल कोड गोल्फ के लिए उपयोगी होते हैं: यह बहुत बार होता है कि हमें एक फ़ंक्शन की आवश्यकता होती है, उदाहरण के लिए, 0 से 1, 1 से 2, 2 से 1 और बाकी सब 0. से। हालांकि, TI-BASIC सरणियाँ अनुकूल नहीं हैं इस उद्देश्य के लिए: एक चीज़ के लिए, वे एक-आधारित हैं, और दूसरे के लिए, मान तब तक नहीं निकाला जा सकता जब तक कि सरणी Ans
या सूची चर में संग्रहीत न हो जाए ।
यहाँ मेरे उत्तर में , मैं बेस 11 में एक मैजिक कंटेंट में एक छोटी लुकअप टेबल स्टोर करता हूं। बस उन मूल्यों को सूचीबद्ध करें जिन्हें आप उपयोग करना चाहते हैं,
{0,-1,5,-1,-1,2,9,-1,8,6}
एक उपयोगी रूप में परिवर्तित करें
{1,0,6,0,0,3,10,0,9,7}
अपने इच्छित आधार (आधार 11) में लिखें
.106003A097
और बेस 10 में परिवर्तित करें
-1+int(11fPart(11^Ans.0954191904
सबसे छोटा सरणी दृष्टिकोण 8 बाइट्स लंबा है!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC केवल 14 दशमलव अंकों तक ही संग्रहीत करता है, इसलिए आप 44ish बिट्स तक स्टोर कर सकते हैं लेकिन केवल 14 दशमलव अंक।
बेस-एन एन्कोडिंग के बजाय एक जादू निरंतर खोजने के लिए जानवर-बल खोज का उपयोग करके इस तकनीक को अक्सर और बेहतर बनाया जा सकता है। मैं अभी भी ऊपर दिए गए उत्तर को गोल करने की प्रक्रिया में हूं, लेकिन वेंगिरी ( फोरम TI-BASIC) पर 30 वीं संख्या (यानी एक दोहराई गई सूची ) के साथ सहसंबंध के बीच के अंतर को उत्पन्न करने के लिए इस पद्धति का इस्तेमाल किया6, 4, 2, 4, 2, 4, 6, 2
गया था। इस स्निपेट के साथ डेवलपर:
2+2iPart(3fPart(576e^(fPart(I/8
576 का जादू मैथेमेटिका का उपयोग करते हुए पाया गया था, लेकिन अगर आप अपनी पसंदीदा भाषा में स्क्रिप्ट का उपयोग नहीं करते हैं।