मान लीजिए कि डेटा पहुंचने की एक धारा है, डी (0),डी (1), डी (2), .... जब डी (आई) आता है, मैं डी (आई - एन) जानना चाहता हूं। सबसे सीधे आगे का तरीका सबसे हाल ही में एन आइटम स्टोर करना है और नए डेटा के आगमन पर उन्हें अपडेट करना है। लेकिन समस्या एन बड़ी हो सकती है ताकि उन्हें स्टोर करने के लिए पर्याप्त मेमोरी न हो। वैसे भी N की तुलना में बहुत कम वस्तुओं का भंडारण करके इसे प्राप्त करना है? रिक्त स्थान का M << N को प्राथमिकता दी जाती है? अग्रिम में धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1जब तक मैं देख नहीं सकता, जब तक कि कुछ नहीं हैडेटा में नियमितता जो आप शोषण कर सकते हैं। यदि डेटा पूरी तरह से यादृच्छिक है (जैसे कि कोई तत्व दूसरों से अनुमान नहीं लगाया जा सकता है), तो तत्व को बचाने का विकल्प नहीं है कश्मीर पुनरावृत्ति में उस तत्व को पुन: उत्पन्न करना असंभव बना देगा के + एन.
इसके बजाय, विचार करें:
- क्या आप कम कर सकते हैं? एन?
- क्या आप मेमोरी पर जानकारी (या यदि आप एक एम्बेडेड वातावरण में हैं) मेमोरी के सस्ते रूप में स्टोर कर सकते हैं?
- क्या डेटा में कुछ पैटर्न है? अगर ई है।जी। एक दोहराव पैटर्न, आप इसका उपयोग कर सकते हैं, या यदि संख्याओं के बीच कुछ गणितीय संबंध हैं, तो शायद कुछ सूत्र दूसरों से एक संख्या का पुनर्निर्माण करने में सहायता कर सकते हैं। भले ही कोई बोधगम्य पैटर्न नहीं है, शायद आप डेटा आकार को कम करने के लिए कुछ संपीड़न एल्गोरिदम का उपयोग कर सकते हैं?
- क्या डेटा की कुछ सीमा है, उदा। हर संख्या 0 और 255 के बीच है? यदि हां, तो आप शायद भंडारण आवश्यकताओं को कम कर सकते हैं।
(इस के आवेदन क्या है, वैसे?)