चंक का आकार अक्सर दो की शक्ति क्यों होता है?


15

वहाँ कई Minecraft क्लोन हैं और मैं अपने स्वयं के कार्यान्वयन पर काम कर रहा हूं। इलाके के प्रतिपादन का एक सिद्धांत स्थानीय बदलावों के प्रयासों को कम करने के लिए पूरी दुनिया को निश्चित आकार के टुकड़ों में बाँध रहा है।

Minecraft में chunk का साइज़ 16 x 16 x 256 है जहाँ तक अब मैं हूँ। और क्लोनों में मैंने हमेशा संख्या 2 की शक्ति का हिस्सा आकार देखा।

क्या इसका कोई कारण है, शायद प्रदर्शन या स्मृति संबंधित है? मुझे पता है कि 2 की शक्तियां द्विआधारी कंप्यूटर में एक विशेष भूमिका निभाती हैं लेकिन क्या है कि चंक आकार के साथ क्या करना है?


1
यह अच्छा है कि आप इसे दो से विभाजित कर सकते हैं और नंबर भी प्राप्त कर सकते हैं। (पूर्ण उत्तर नहीं है, लेकिन एक नंबर का उपयोग करने के बारे में कुछ उपयोगी है 2^n)
ashes999

जवाबों:


27

यह खेल और अनुक्रमण संरचना पर निर्भर करता है जो विखंडू के लिए उपयोग किया जाता है। हालांकि, इतने उच्च स्तर पर, यह बहुत अधिक संभावना नहीं है कि इसका मेमोरी या विशिष्ट प्रदर्शन बढ़ाने के साथ बहुत कुछ है। संभावना से अधिक यह अनुमान लगाने योग्य तरीके से विखंडू तय करने के लिए एक मनमाना निर्णय है। यह बिट्स शिफ्टिंग का उपयोग करके कुछ गिनती और अनुक्रमण ट्रिकों की अनुमति देता है जो उन संख्याओं के साथ संभव नहीं होंगे जो दो की शक्ति नहीं हैं।

उदाहरण के लिए, दो की शक्तियों में गिनना उतना ही आसान है जितना कि बाइनरी में थोड़ा सा बदलाव करना:

Dec =  Bin
1   =  000001
2   =  000010
4   =  000100
8   =  001000
16  =  010000
32  =  100000

ये शॉर्टकट कहां उपयोग किए जाएंगे, यह डेवलपर पर निर्भर करेगा और वे किस समस्या को हल करने का प्रयास कर रहे हैं।

यदि आप निर्णय लेते हैं कि किस आकार का हिस्सा बनाना है, और यह किसी भी अन्य पहलुओं में कोई फर्क नहीं पड़ता है, तो आप किसी ऐसी चीज का उपयोग कर सकते हैं जो परिचित है और आपके द्वारा उपयोग किए जाने वाले लाभ हैं।


15

सबसे पहले, दो की शक्तियों से गुणा करना एक मनमानी संख्या से गुणा करने की तुलना में बहुत सस्ता है, क्योंकि आप इसे थोड़ा सा बदलाव करके कर सकते हैं । अधिकांश समय कंपाइलर आपके लिए ऐसा कर सकता है, इसलिए जब भी आप अपने कोड में "* 16" लिखते हैं, तो कंपाइलर वास्तव में चार से एक बदलाव करता है, और आपको इसके बारे में चिंता करने की ज़रूरत नहीं है - आपको बस देने की ज़रूरत है इस तरह से अपने डेटा संरचनाओं को डिज़ाइन करके अवसर संकलक करें।

दूसरा, चूंकि आपके कंप्यूटर में कैश लाइन, मेमोरी बूस और अन्य सूचना राजमार्ग भी दो की शक्तियों का उपयोग करने के लिए डिज़ाइन किए जाते हैं, इसलिए आपको इस तरह से बेहतर प्रदर्शन मिल सकता है।

तीसरा, हम पुराने geeks सिर्फ दो की शक्तियों के साथ खेलने के लिए उपयोग किया जाता है, तो यह एक आदत है।

(चौथा, अन्य पुराने geeks जो आपके हार्डवेयर को डिज़ाइन करते हैं और आपके कंपाइलर्स को दो की शक्तियां भी पसंद हैं, इसलिए यह जल्द ही बदलने वाला नहीं है)।


2
+1 "तीसरा, हम पुराने गीक्स का इस्तेमाल सिर्फ दो की शक्तियों के साथ खेलने के लिए करते हैं, इसलिए यह एक आदत है।" शायद यही मुख्य कारण है।
लॉरेंट कौविदो

9

असली जवाब सिर्फ यह है: एक द्विआधारी कंप्यूटर पर, दो की शक्तियां अच्छी गोल संख्या हैं।

जब किसी सामान्य व्यक्ति को किसी उद्देश्य के लिए एक मनमाना संख्या चुनने की आवश्यकता होती है, तो वे आम तौर पर आधार प्रणाली में अच्छे गोल संख्याओं का चयन करते हैं, जो वे आधार के साथ सहज होते हैं। इसलिए वे 10, 100, 1000, इत्यादि चुन सकते हैं क्योंकि वे हैं। सरल और आसान और बहुत अधिक विचार की आवश्यकता नहीं है और सटीक मूल्य वास्तव में उनके लिए महत्वपूर्ण नहीं था, वे सिर्फ एक सामान्य पैमाने पर लक्ष्य बना रहे थे।

प्रोग्रामर के रूप में, जब हमें किसी उद्देश्य के लिए एक मनमानी संख्या चुनने की आवश्यकता होती है, तो हम आम तौर पर नंबर सिस्टम कंप्यूटर के उपयोग, आधार 2 में अच्छे दौर की संख्या चुनते हैं। इसलिए हम 2, 4, 8 आदि का चयन करेंगे, क्योंकि वे सरल हैं। आसान और बहुत अधिक विचार की आवश्यकता नहीं है और सटीक मूल्य हमारे लिए वास्तव में महत्वपूर्ण नहीं था, हम सिर्फ सामान्य परिमाण में लक्ष्य बना रहे थे।

यह वास्तव में उससे अधिक जटिल नहीं है। वे सिर्फ अच्छे दौर की संख्या हैं।


6

अन्य उत्तरों में उल्लेख नहीं किए जाने का एक कारण यह भी है कि यदि आवश्यक हो, तो दो नंबर की शक्तियों को हमेशा गोल समस्याओं के बिना आधा किया जा सकता है। यह शायद Minecraft क्लोन में एक कारण नहीं है, लेकिन कुछ अन्य मामलों में है जैसे कि mipmaps के साथ बनावट में ।


2

एक और संभावित कारण यह होगा कि यह आपको 3 डी बनावट में प्रत्येक चंक के बारे में जानकारी सांकेतिक करने की अनुमति देगा। यदि आपके लक्ष्य हार्डवेयर ने 3 डी बनावट का समर्थन किया है, लेकिन पूरी तरह से मजबूत और सामान्य गैर-शक्ति-में से दो बनावट का समर्थन नहीं किया है (जो मैं मानता हूं कि आप काफी कम शूटिंग करना चाहते हैं) तो आपके दो हिस्सों की शक्तियों को बनाना नहीं है बस आदर्श - यह आवश्यक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.