"चौथा आयाम" सरणियों के साथ कैसे काम करता है?


30

सार:

इसलिए, जैसा कि मैं इसे समझता हूं (हालांकि मुझे बहुत सीमित समझ है), तीन आयाम हैं जो हम (आमतौर पर) शारीरिक रूप से काम करते हैं:

पहली पंक्ति द्वारा प्रतिनिधित्व किया जाएगा।
2 को एक वर्ग द्वारा दर्शाया जाएगा।
3 एक घन द्वारा प्रतिनिधित्व किया जाएगा।

जब तक हम 4 के लिए पर्याप्त सरल नहीं हो जाते - यह एक 3 डी अंतरिक्ष में आकर्षित करने के लिए कठिन है, अगर आप जानते हैं कि मेरा क्या मतलब है ... कुछ लोग कहते हैं कि इसका समय के साथ कुछ करना है

प्रश्न:

अब, हालांकि यह सब बहुत मायने नहीं रखता, लेकिन मेरे साथ यह सब बहुत अच्छा है। मेरा प्रश्न इस बारे में नहीं है, या मैं इसे MathSO या PhysicsSO पर पूछूंगा। मेरा प्रश्न है: कंप्यूटर सरणियों के साथ इसे कैसे संभालता है?

मुझे पता है कि आप कई अलग-अलग प्रोग्रामिंग भाषाओं में 4D, 5D, 6D, आदि बना सकते हैं ... लेकिन मैं जानना चाहता हूं कि यह कैसे काम करता है।


66
यदि 3 आयामों को घन के रूप में देखा जा सकता है, तो 4 आयामों को एक पंक्ति में क्यूब्स के गुच्छा के रूप में देखा जा सकता है। 5 आयामों को एक ग्रिड के रूप में देखा जा सकता है जहां ग्रिड में प्रत्येक सेल में एक घन होता है ...! और इतने पर ... "चौथा आयाम" (जो समय के साथ कोई संबंध नहीं है कि है), जब तक आप अपने कार्यक्रम के शब्दों के संदर्भ में इस तरह के रूप में यह परिभाषित करते हैं।
FrustratedWithFormsDesigner

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


6
स्टीव एवर्स की टिप्पणी के आगे, एक सामान्य डेटा प्रकार के बारे में सोचें: एक आरजीबी रंग। इसके तीन आयाम हैं, इसलिए आप RGB "कलर स्पेस" पर विचार कर सकते हैं। अब एक अल्फा घटक जोड़ें। आपके चार आयाम हैं।
जोश कैसवेल

25
याद रखें कि कंप्यूटर ज्यामितीय आयामों के विचार के बारे में परवाह नहीं करता है - वे मानव सुविधा के लिए सिर्फ एक उपकरण हैं। यदि आप 5x5x5x5 सरणी आवंटित करते हैं, तो कंप्यूटर केवल 625 तत्वों की एक सरणी आवंटित करता है और तदनुसार आपके सूचकांकों के साथ गणित करता है।
डेविड जांग

जवाबों:


77

सौभाग्य से, कार्यक्रम वास्तविक दुनिया की भौतिक बाधाओं से सीमित नहीं हैं। सरणी को भौतिक स्थान में संग्रहीत नहीं किया जाता है, इसलिए सरणी के आयामों की संख्या मायने नहीं रखती है। वे रैखिक स्मृति में समतल होते हैं। उदाहरण के लिए, दो तत्वों के साथ एक एकल आयामी सरणी को निम्न रूप में रखा जा सकता है:

(0) (1)

एक 2x2 आयामी सरणी तब हो सकती है:

(0,0) (0,1) (1,0) (1,1)

एक तीन आयामी 2x2x2 सरणी हो सकती है:

(0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1)

आप उम्मीद कर सकते हैं कि यह कहां जा रहा है। चार आयाम हो सकते हैं:

(0,0,0,0) (0,0,0,1) (0,0,1,0) (0,0,1,1) (0,1,0,0) (0,1,0,1) (0,1,1,0) (0,1,1,1)
(1,0,0,0) (1,0,0,1) (1,0,1,0) (1,0,1,1) (1,1,0,0) (1,1,0,1) (1,1,1,0) (1,1,1,1)

10
कंप्यूटर सरणियाँ मानव समझ या विज़ुअलाइज़ेशन द्वारा सीमित नहीं हैं, लेकिन वे भौतिक बाधाओं द्वारा सीमित हैं, उदाहरण के लिए d आयामों की एक सरणी n लंबाई प्रत्येक n n d लेगी, या अधिक लंबाई आयामों के साथ, n1 × n2 ×… × nd।
acelent

6
@ कोल्टनअलेन: मुझे पूरा यकीन नहीं है कि आप किस बारे में बात कर रहे हैं। आयाम की परिभाषा कहती है "मोटे तौर पर, यह ऑब्जेक्ट पर एक बिंदु निर्दिष्ट करने के लिए आवश्यक निर्देशांक की संख्या है।" C के रूप में घोषित एक सरणी int a[2][2][2];एक 3-आयामी सरणी होगी।
ग्रेग हेविगेल

4
"सौभाग्य से, कार्यक्रम वास्तविक दुनिया की भौतिक बाधाओं से सीमित नहीं हैं" तो यही कारण है कि हमारे पास 4.5THz पर प्रोसेसर हैं, और कोई भी स्मृति पदानुक्रम की परवाह नहीं करता है, है न? यह वास्तव में सबसे मज़ेदार जवाब है जो मैंने
पढ़ा है

24
@ Manu343726 वह इस तथ्य का जिक्र कर रहे हैं कि हम (सैद्धांतिक रूप से) अंतरिक्ष और समय के सीमित आयामों में रहते हैं, लेकिन कंप्यूटर मेमोरी में सरणियों में "ढोंग" आयाम हैं - यह सब स्मृति में एक रैखिक रूप से सन्निहित स्थान में संग्रहीत है - इसलिए वे केवल सीमित नहीं हैं हम कितने आयामों में रहते हैं। ट्रोल> :(
ब्लैकहॉक

15
@ Manu343726: मैंने ध्यान से प्रोग्राम्स कहा था , कंप्यूटर नहीं । यह सॉफ्टवेयर के बारे में महान चीजों में से एक है।
Greg पर ग्रेग हेवगिल

49

आपको उच्च स्थानिक आयामों की कल्पना करने की आवश्यकता नहीं है, बस इसे एक फर्न लीफ के रूप में सोचें। फर्न की पत्ती

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

यदि आप प्रत्येक स्तर को अपने नाम से घोषित करते हैं तो आप इस इमारत को देख सकते हैं। यहां मैं कोड को कम करने के लिए प्रत्येक स्तर के चर का पुन: उपयोग कर रहा हूं:

leaf = 2;
tinyBranch = [leaf, leaf, leaf];
middleBranch = [tinyBranch, tinyBranch, tinyBranch];
bigBranch = [middleBranch, middleBranch, middleBranch];
mainBranch = [bigBranch, bigBranch, bigBranch];

1
यह दृश्य अधिक बारीकी से दांतेदार सरणी का प्रतिनिधित्व नहीं करेगा?
मैट जॉनसन-पिंट

2
@MattJohnson औपचारिक रूप से हाँ, लेकिन यह उदाहरण बहुआयामी सरणियों की व्याख्या / कल्पना करता है।
एम। मिम्पेन

4
+1 यह न केवल एक साफ-सुथरा दृश्य है, बल्कि कई सरणी कार्यान्वयन के लिए रैखिक स्पष्टीकरण की तुलना में सच्चाई के करीब है। यहाँ के अधिकांश लोग "सरणी" शब्द को सन्निहित स्मृति तक सीमित रखेंगे या नहीं, "बहुआयामी सरणी " निश्चित रूप से कई भाषाओं के लिए साहित्य में ऐसी व्यवस्था के लिए प्रयुक्त शब्द है।
डेवलपरइन्डेवलमेंट

46

आयाम जो भी आप बनना चाहते हैं, 4 वें आयाम का समय होना जरूरी नहीं है। यदि आप एक घन के रूप में तीन आयामों के बारे में सोचते हैं, तो आप 4 आयामों को घन की पंक्ति के रूप में सोच सकते हैं। 5 आयाम, क्यूब्स का एक ग्रिड, और इसी तरह।

तुम भी एक 4 डी आयाम रंग, या घनत्व, या कुछ अन्य संपत्ति के साथ voxels का एक 3 डी संग्रह हो सकता है।

जब आप अपने बहुआयामी सरणी के लिए मेमोरी आवंटित करते हैं, तो यह केवल आपके डेटा प्रकार के लिए अधिकतम प्रत्येक आयाम के उत्पाद को आवंटित करता है। यदि आपके पास प्रत्येक आयाम में 10 तत्वों का 3 डी सरणी या 'क्यूब' है, तो आपको 1,000 तत्व आवंटित किए जाएंगे। यदि आप 4 आयाम में 10 तत्वों के साथ 4d सरणी बनाते हैं, तो कंप्यूटर केवल 10,000 आवंटित करेगा। इसे 5 आयामों तक टक्कर दें, और यह 100,000 आवंटित करेगा।

कंप्यूटर किसी भी प्रकार के अर्थ के बारे में परवाह नहीं करता है जो प्रत्येक आयाम का प्रतिनिधित्व करता है। यह चुनने के लिए कि तत्वों की सूची में एक बिंदु कहाँ है, यह केवल मेमोरी एड्रेस का चयन करने के लिए गुणा है।


26

कुछ नए मेडिकल डिवाइस पर सेंसर की श्रृंखला की कल्पना करें, जिसे आप एक मरीज की बांहों में डालते हैं। आपके पास परीक्षण के लिए सात स्वयंसेवक हैं। प्रत्येक सेंसर कम-आवृत्ति, मध्य-आवृत्ति और उच्च-आवृत्ति रीडिंग की रिपोर्ट करता है, जिसे आप प्रत्येक 100ms में एक मिनट के लिए एक बार लेते हैं।

विश्लेषण और साजिश रचने के लिए मेमोरी में उस सभी डेटा को कैसे स्टोर करें?

एक सरणी, जाहिर है। यह इस तरह दिखेगा (बना-बनाया सामान्य छद्म का उपयोग करके):

npatients = 7
nsensors = 4     // number of sensors on an arm
nchannels = 3
nsamples = 60.0 / 0.1
sensordata = Array[ npatients, nsensors, 2, nchannels, nsamples ]

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

x = sensordata[6, 5, 1, 2, 338)

यह एक संबंधपरक डेटाबेस को उद्धृत करने जैसा है, जहां आपके पास प्रत्येक डेटा मान के लिए एक रिकॉर्ड है, जिसमें रोगी आईडी, सेंसर आईडी और इसी तरह के पांच कॉलम हैं, और मूल्य के साथ एक कॉलम है। एक डेटा बिंदु प्राप्त करने के लिए आप WHERE में पांच शब्दों का उपयोग करते हैं: सेंसर से डेटा का चयन करें WHERE )।

पाँच या अधिक कॉलम वाली डेटाबेस तालिका के बारे में कुछ भी रहस्यमय नहीं है, क्या वहाँ है?

(मैं वास्तविक जीवन में यद्यपि 1-आधारित अनुक्रमणिका का उपयोग कर रहा हूं, 0-आधारित बहुत अधिक सामान्य है।)

ध्यान दें कि मैं हथियारों की संख्या को हार्ड-कोडिंग के कारण एक बुरा लड़का हूं। अगर मुझे कभी ऑक्टोपस पर इन सेंसरों की जांच करने के लिए फंड दिया जाता है, तो मैं मुश्किल में हूँ!


3
+1 उत्कृष्ट उदाहरण यह दर्शाता है कि आयाम आपके लिए आवश्यक कोई भी डेटा हो सकते हैं।
माइक

20

एक सरणी केवल निरंतर स्मृति का एक खंड है। मेमोरी एड्रेसिंग एक आयामी है, आप या तो आगे या पीछे जा सकते हैं। तो मान लें कि आपके पास 5 तत्वों के साथ एक सरणी है, 5 मेमोरी ब्लॉक आरक्षित होंगे। यदि आपके पास प्रत्येक आयाम में 5 तत्वों के साथ 2-आयामी सरणी है, तो 25 मेमोरी ब्लॉक आरक्षित होंगे।


5
हां, इसे ध्यान में रखें क्योंकि आप अपनी सरणियों में अधिक आयाम जोड़ते हैं। स्मृति उपयोग तुच्छ नहीं हो सकता है।
दाविद्स्किन्स

18

... या मैं इसे MathSO पर पूछ रहा हूँ ...

ठीक है, तथ्य के रूप में गणितज्ञ कभी भी (या कम से कम आमतौर पर नहीं) समय जैसे किसी भी चीज के साथ चौथे आयाम को जोड़ते हैं। न ही वे पहले तीन लोगों को किसी भी स्थान के साथ जोड़ते हैं जैसे: गणितज्ञ बस आयाम को एक अमूर्त संपत्ति के रूप में परिभाषित करते हैं, आमतौर पर, एक वेक्टर अंतरिक्ष (अक्सर इसे कई गुना या यहां तक ​​कि मीट्रिक रिक्त स्थान के लिए सामान्यीकृत किया जाएगा )। और यह अमूर्त परिभाषा इस बात की परवाह नहीं करती है कि हम जिस भौतिक स्थान में जाने के लिए कितने आयाम हैं। आयामों की अवधारणा उन रिक्त स्थानों पर लागू होती है जो भौतिक स्थान के समान नहीं होते हैं। वास्तव में गणितज्ञ (और वास्तव में भौतिक विज्ञानी) बहुत बार अनंत-आयामी का उपयोग करते हैं रिक्त स्थान, जैसे कि क्वांटम यांत्रिकी के हिल्बर्ट स्थान।

उस स्पष्ट के साथ, आइए सरणियों की बात करते हैं - आपको वेक्टर रिक्त स्थान को समझने की आवश्यकता नहीं है, क्योंकि सार परिभाषा वास्तव में यहां बहुत सरल है।

एक ( 0 × 1 × 2 × × ... एन -1 ) आकार के सरणी (यानी आयाम के एन ) बस का एक संग्रह है 01 ⋅ ... ⋅ एन -1 संख्या ( या जो भी प्रकार की वस्तु सरणी को पॉप्युलेट करता है)। उस लंबाई के एक आयामी सरणी के लिए एकमात्र अंतर यह है कि आपके पास आयामों को अनुक्रमित करने का एक विशेष उपयोगी तरीका है, अर्थात्

मैं लिन = मैं एन -1 + एन -1 ⋅ ( मैं एन -2 + एन -1 ⋅ (... 2 ⋅ ( मैं 1 + 1मैं 0 ) ...))


स्पष्ट होने के लिए, आपको केवल 3 आयामों का वर्णन करने के लिए 3 तत्वों के साथ एक सरणी की आवश्यकता होती है, और एक N तत्व सरणी N आयामों का वर्णन करता है। हालांकि, हर वेक्टर का विवरण एक अलग कहानी है। अक्सर बार, यह एक छवि दिखा कर किया जाता है ( imshowपायथन में) - यह दो स्थानिक आयामों के साथ-साथ एक तीसरे रंग आयाम को दिखा सकता है।
स्कॉट

@ बहिष्कार: मैं मानता हूं कि "एक सरणी के आयाम" की धारणा दुर्भाग्यपूर्ण है क्योंकि इसका मतलब है कि अंतरिक्ष के आयाम से कोई संबंध नहीं है जिसका वैक्टर आप सरणियों द्वारा दर्शा सकते हैं। (हालांकि मैं यह भी लगता है कि यह एक अच्छा विचार पहली जगह में सादे, unabstracted सरणियों द्वारा वैक्टर प्रतिनिधित्व करने के लिए नहीं है।) एक बेहतर नाम हो सकता है रैंक के सादृश्य में एक सरणी की, tensors
लेफ्टरनैबाउट

13

प्रोग्रामिंग में, सरणियों को लागू करना काफी आसान है, लेकिन शायद समझने के लिए नहीं।

आम तौर पर, प्रत्येक स्तर के सरणियों का अर्थ सामग्री- nगुना होता है। इसका मत

  • int x[4]4 ब्लॉक हैं, जिनमें से प्रत्येक में एक है int
  • int x[5][4]5 ब्लॉक हैं, जिनमें से प्रत्येक में एक है int[4]
  • int x[3][5][4]3 ब्लॉक हैं, जिनमें से प्रत्येक में एक है int[5][4]
  • int x[2][3][5][4]2 ब्लॉक हैं, जिनमें से प्रत्येक में एक है int[3][5][4]

आप उनका किस तरह से जिक्र कर रहे हैं, यह आपके ऊपर है, लेकिन बेहतर समझ के लिए, आपके पास कुछ ऐसा है

  • COLUMN पिछले एक के लिए
  • ROW दूसरे-अंतिम एक के लिए
  • PAGE तीसरे-अंतिम एक के लिए

यहाँ तक, मैंने इसे कहीं पढ़ा। यहाँ रहने के लिए, हम अच्छी तरह से परिभाषित कर सकते हैं

  • BOOK चौथे-अंतिम एक के लिए
  • और शायद SHELFपांचवें-आखिरी के लिए। (या, यदि आप चाहें, SHELFROWताकि हम जारी रख सकें।)

उस ने कहा, मैंने "वाइल्ड लाइफ" में कभी भी 4 या 5 से अधिक आयामों के साथ सरणी नहीं देखी।

इस तरह, आप int x[6][2][3][5][4]6 "अलमारियों" के संग्रह के रूप में परिभाषित और कल्पना कर सकते हैं , जिनमें से प्रत्येक में 2 किताबें हैं, प्रत्येक में 3 पृष्ठ हैं, प्रत्येक में 5 पंक्तियाँ हैं, प्रत्येक में 4 कॉलम हैं।


13

दराज के एक छाती की तरह एक आयामी सरणी के बारे में सोचो:

कपड़े रखने की आलमारी

प्रत्येक दराज सरणी का एक सूचकांक है। आप प्रत्येक ड्रावर में जो कुछ भी चाहते हैं उसे डाल सकते हैं, और कई उद्देश्यों के लिए, प्रत्येक ड्रॉअर में केवल एक ही आइटम होगा (यह एक आयामी आयाम है)।

दराज का यह छाती हालांकि जादुई है, इसलिए यह भौतिक स्थान द्वारा सीमित नहीं है। इसका मतलब है कि आप दराज के पहले छाती के प्रत्येक दराज के अंदर दराज के एक और छाती को रख सकते हैं । दराज के आंतरिक चेस्ट तब आप जो चाहें कर सकते हैं। यह एक दो आयामी सरणी है।

तो आप ऐसा कुछ कह सकते हैं "दराज के पहले सीने के शीर्ष दराज को खोलें, उस दराज से दराज के छाती को प्राप्त करें, फिर दराज के दूसरे छाती के निचले दराज को खोलें"। यह एक 2D सरणी के एक सूचकांक तक पहुँचने की तरह होगा: myArray [0] [3];

और निश्चित रूप से, दराज के बाहरी-सबसे छाती के अंदर दराज के छाती में खुद दराज के छाती हो सकते हैं। यह एक तीन आयामी सरणी है।

तो, आपका सवाल है: एक चार आयामी सरणी क्या है? यह निश्चित रूप से दराज के चेस्टों के दराज के चेस्टों के दराज के चेस्टों के दराज का एक छाती है!

यह सभी तरह से नीचे है।


4
यह नीचे सभी तरह से दराज के चेस्ट है, यार।
थॉमस ईडिंग

8
और दराज के आखिरी सीने में? कछुए
केविन कर्मकार

थोड़ा पांडित्यपूर्ण होना। यह देखते हुए कि प्रत्येक चेस्ट में 3 ड्रॉअर हैं (चित्र के आधार पर), 4 नहीं, और आप एक बेस 0 इंडेक्स का उपयोग कर रहे हैं, नीचे का ड्रावर 2 नहीं 3 होगा। इसलिए इसके बजाय myArray[0][3]यह होगा myArray[0][2]। लेकिन अन्यथा अच्छी व्याख्या।
टॉम हर्ड

@TomHeard दराज के पहले छाती में 3 दराज हैं, लेकिन पहले दराज के अंदर दराज के सीने में दो दराज हैं। ओह! : पी
केविन कर्मकार

1
ओह तो ठीक है। = D
टॉम जूल

5

इस प्रश्न के अधिकांश पहलुओं पर पहले ही विचार किया जा चुका है, लेकिन मुझे लगता है कि यदि आप एक आयाम की प्रकृति पर विचार करते हैं तो यह मदद करेगा। सभी आयाम स्थानिक नहीं हैं। एक आयाम माप के लिए एक संदर्भ है। यहाँ कुछ उदाहरण हैं:

  • आवृत्ति - रंग या पिच
  • सामूहिक
  • वैलेंस
  • रंग (अप क्वार्क, डाउन क्वार्क, अजीब क्वार्क, चार्म्ड क्वार्क आदि)
  • स्पिन दिशा
  • कोण
  • प्रबलता
  • हॉटनेस (मिर्च की)

"चौथा" आयाम केवल चौथा है क्योंकि तीन स्थानिक आयाम हैं। अंतरिक्ष और समय बड़े करघे क्योंकि, अच्छी तरह से, वे बड़े करघा। आपके चेहरे पर बहुत ज्यादा। लेकिन अगर आप इसे मापते हैं तो कोई भी मात्रात्मक, मापने योग्य गुणवत्ता एक आयाम हो सकता है।

उदाहरण के लिए, ब्रैसियर के तीन आयाम होते हैं: कप का आकार, छाती का आकार और अंतरालीय (मुझे नहीं पता कि आप लड़कियों को क्या कहते हैं लेकिन मेरा मतलब है कप के बीच की दूरी)।


1
"सभी आयाम स्थानिक नहीं हैं।" सरणियों के लिए, सभी आयामों हैं स्थानिक।
०१ पर

2
@ राइमॉइड: सरणियों के लिए, कोई आयाम स्वाभाविक रूप से स्थानिक नहीं है जिस तरह से हम अंतरिक्ष के बारे में सोचते हैं। : पी हम उन्हें परिभाषित करते हैं जो हम चाहते हैं का प्रतिनिधित्व करने के लिए।
cHao

@cHao शायद अगर आप उनके द्वारा संग्रहीत डेटा के शब्दार्थ को देखते हैं। लेकिन चीजों के रिप्रेजेंटेटिव / वाक्य-विन्यास / कार्यान्वयन पक्ष पर, सभी सरणी आयाम स्वाभाविक रूप से स्थानिक हैं। यह वास्तव में वही है जो आप एल्गोरिथ्म के हिस्से के रूप में सरणियों का उपयोग करते समय निर्भर करते हैं।
रयानॉइड

@ राइमोइड: यह वही विचार प्रक्रिया है जिसके कारण यह प्रश्न पहले स्थान पर पूछा गया था। एक आयाम होने के नाते यह स्थानिक नहीं करता है। कार्यान्वयन, कोई जगह नहीं है। केवल स्मृति है, और स्मृति एक आयामी है जहाँ तक कोई कार्यक्रम जानता / देखता / देखती है।
cHao

@ कोको: कार्यान्वयन, अंतरिक्ष है, क्योंकि समय भी है। शब्द 'स्पेस लीक' (हस्केल समुदाय में पाए जाने वाले 'मेमोरी लीक' के विकल्प के रूप में) कोई संयोग नहीं है। तथ्य यह है कि स्मृति को एक आयामी के रूप में वर्णित किया गया है, BCPL की एक विरासत है।
११:१३ बजे जूलॉइड

4

भौतिक विज्ञान में, हम प्रत्येक स्थानिक आयाम को अनंत मानते हैं, जो नए आयामों के लिए जगह ढूंढना काफी कठिन बना देता है।

परिमित सरणियों के साथ काम करते समय, अंतरिक्ष खोजना आसान है।

उस पर मुद्रित ग्रिड के साथ कागज की एक शीट की कल्पना करें; आप ग्रिड के प्रत्येक सेल में कुछ जानकारी लिख सकते हैं। यह एक 2D सरणी है: पंक्ति और स्तंभ।

एक फ़ाइल फ़ोल्डर में कागज की उन चादरों में से कई रखो; वह 3 डी सरणी है: पृष्ठ, पंक्ति और स्तंभ।

एक फाइल बॉक्स में उन फ़ोल्डरों में से कई रखो। 4D सरणी: फ़ोल्डर, पृष्ठ, पंक्ति, स्तंभ।

एक लकड़ी के फूस पर एक आयताकार ग्रिड में बक्से व्यवस्थित करें। 6D सरणी: बॉक्स-पंक्ति, बॉक्स-कॉलम, फ़ोल्डर, पृष्ठ, पंक्ति, स्तंभ।

शीर्ष पर बक्से के अधिक ग्रिड ढेर। 7D सरणी: बॉक्स-गहराई, बॉक्स-पंक्ति, बॉक्स-कॉलम, फ़ोल्डर, पृष्ठ, पंक्ति, स्तंभ।

एक शिपिंग कंटेनर में cramming pallets शुरू करें: 9D सरणी। (प्रत्येक स्टैक को कंटेनर के अंदर जितना लंबा माना जाता है, इसलिए आप केवल 2 और आयाम यहां प्राप्त कर सकते हैं।)

एक कंटेनर जहाज के डेक पर शिपिंग कंटेनरों को ढेर करें: 12 डी सरणी।

कंटेनर जहाजों का आपका बेड़ा अब 13D सरणी है।


"हम मानते हैं कि प्रत्येक स्थानिक आयाम अनंत है" अनंत वास्तव में यहां सबसे बड़ा सौदा नहीं है, निरंतर "वास्तविक" समस्या है (यानी अति-गणना अनंत है, और हमें एक होम्योमोर्फिक मैपिंग की आवश्यकता है ताकि यह शारीरिक रूप से सार्थक हो)।
लेफ्टरनैबाउट

3

कार्टेशियन समन्वय प्रणाली में, आपके पास एक विमान पर एक्स और वाई कुल्हाड़ी है। आप (x, y) के रूप में विमान पर किसी भी संख्या का प्रतिनिधित्व कर सकते हैं।

तीन- "स्पेस" (अन्यथा एक क्यूब के रूप में जाना जाता है) में, आपके पास एक्स, वाई और जेड एक्सिस हो सकते हैं। आप क्यूब (x, y, z) के किसी भी तत्व का प्रतिनिधित्व कर सकते हैं।

बहुभिन्नरूपी अंतरिक्ष में, आपके पास x, y, z और, w axes (जहाँ w अक्ष "काल्पनिक" है) हो सकता है। आप उस स्थान के किसी भी तत्व का प्रतिनिधित्व कर सकते हैं (x, y, z, w)।

अंतरिक्ष में इन सभी बिंदुओं को वैक्टर द्वारा निरूपित किया जाता है। चार-स्थान में, आपके पास दो वैक्टर हो सकते हैं, जहां v1 = (X1, y1, z1, w1), और v2 = (x2, y2, z2, w2)। फिर आप इन वैक्टरों में फेरबदल करेंगे क्योंकि आप संख्याओं को समझेंगे। उदाहरण के लिए, दो वैक्टर, v1 + v2 का योग होगा (X1, y1, z1, w1) + (x2, y2, z2, w2)। फिर आप इन वैक्टर शब्द को अवधि के अनुसार जोड़ेंगे, जिन्हें पाने के लिए: (X1 + x2, y1 + y2, z1 + z2, w1 + w2)।

आपका कार्यक्रम उपयुक्त सरणियों का उपयोग करके वैक्टर को परिभाषित करेगा, और फिर उचित क्रम में उन पर अंकगणितीय ऑपरेशन करेगा।

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