मैं वर्तमान में मंडलब्रॉट सेट को प्रस्तुत करने के साथ प्रयोग कर रहा हूं और मुझे जल्दी ही पता चला है कि प्रत्येक प्रतिपादन के लिए अधिकतम पुनरावृत्ति गणना को पुन: गणना करने के लिए उपयोगी नहीं होगा ... दूसरी ओर यह बहुत अधिक डेटा है अता - पता रखना। ऐसा लगता है (RDMSes के साथ मेरे सीमित अनुभव के आधार पर) कि एक रिलेशनल डेटाबेस शायद जाने का तरीका नहीं है क्योंकि मैं नहीं चाहता कि प्रदर्शन को प्रभावित किया जाए क्योंकि डेटा सेट बड़ा हो जाता है। यह लगभग हैश टेबल के लिए सही स्थिति की तरह लगता है, लेकिन मैंने कभी पहले कभी नहीं उपयोग किया है और मौजूदा वेब सर्वर भाषाओं (पायथन/PHP/जो भी) में से किसी एक में इसका उपयोग या प्रबंधन करने का तरीका नहीं लग रहा है।डेटाबेस में मंडेलब्रॉट मानों को संग्रहीत करने का सबसे अच्छा तरीका क्या हो सकता है?
थोड़ा और स्पष्ट होना करने के लिए: महत्वपूर्ण मूल्यों संग्रहीत करने के लिए कर रहे हैं:
- मूल वास्तविक संख्या की जटिल विमान पर भाग एक नंबर के
- मूल काल्पनिक हिस्सा जटिल विमान पर
- अधिकतम की संख्या पुनरावृत्तियों
- की संख्या 10 पूरा पुनरावृत्तियोंn अधिकतम पुनरावृत्तियों से पहले हिट या जाता है जब तक बिंदु n पुनरावृत्तियों
- अंतिम काल्पनिक हिस्सा के बाद अनंत
- जटिल विमान पर एक नंबर के अंतिम असली हिस्सा के लिए रवाना चलाता है n पुनरावृत्तियों
किसी भी समय के बाद जटिल विमान पर एक नंबर, मूल वास्तविक हिस्सा 012,309,368 को देखते हुए की, मूल काल्पनिक भाग, और पुनरावृत्तियों की अधिकतम संख्या, मैं अंतिम वास्तविक और काल्पनिक भागों के साथ परिणाम सेट प्राप्त करने में सक्षम होना चाहता हूं।
तो आपको क्या लगता है? क्या हैश टेबल जाने का रास्ता है? क्या समस्या केवल प्राणघातक डेटा संरचनाओं के लिए जटिल है?
किसी भी मदद की बहुत सराहना की जाएगी। अग्रिम में धन्यवाद!
संपादित
मैं इस समस्या पर julienaubert की तरह अनुरोध पर थोड़ा व्याख्या करेंगे।
मेरे पास लक्ष्य है कि किसी उपयोगकर्ता को गणना विलंब के बिना मंडलब्रॉट सेट पर ज़ूम इन करने दें (भले ही यह पूर्व परिभाषित ज़ूम के माध्यम से हो)। मैं यह भी ब्राउज़र में ऐसा करने में सक्षम होना चाहता हूं जो लगातार एक नए डेटा सरणी के लिए सर्वर से पूछता है कि नए एक्स और वाई निर्देशांक और जटिल विमान पर ऊंचाई और चौड़ाई को देखा जाए। हालांकि, पिक्सेल रंग मान की गणना करने के बाद से अधिक तेज़ी से (अधिकतम max_iter, real_final, और imag_final दिया जा सकता है), और चूंकि उपयोगकर्ता को रंग सेटिंग्स को समायोजित करने की अनुमति देना अच्छा लगेगा, इसलिए मैं केवल ब्राउजर भेज रहा हूं मेरे पोस्ट में उल्लिखित चर और उपयोगकर्ता के ब्राउज़र को रंग की गणना करने दें।
इस पर एक नज़र डालें:
आप drawMandelbrot() फ़ंक्शन पर एक नज़र डालें, तो आप देख सकते हैं कि बिंदु छोरों एक चर डाटासेट कहा जाता है में महत्वपूर्ण मूल्यों भंडारण कर रहे हैं। यह चर तब drawMandelbrotFromData() फ़ंक्शन में उपयोग किया जाता है जहां यह प्रत्येक पिक्सेल के लिए रंग को समझने के लिए आवश्यक शेष गणना करता है।
आप क्लिक करें "cleardabrot" यदि यह एक सफेद आयत के साथ कैनवास बदल देता है। आप "refilldabrot" पर क्लिक करें, तो यह drawMandelbrotFromData() फ़ंक्शन फिर ... यह आप को दिखाने के लिए कितनी जल्दी यह वास्तव में सेट प्रदान कर सकते हैं, तो केवल यह दर्दनाक पुनरावृत्ति गणना करने के लिए नहीं था किया जाता है चलाता है।
तो अंतिम लक्ष्य यहां इन मानों को मनमाना परिशुद्धता के लिए गणना करने में सक्षम होना है, इसलिए उपयोगकर्ता सेट के किसी भी स्तर पर ज़ूम कर सकता है, अगर सर्वर को सटीक बिंदुओं के लिए कोई डेटा है (या, अधिमानतः, उन सटीक बिंदुओं के नजदीक अंक ... हालांकि मुझे यकीन नहीं है कि यह किसी प्रकार की रेंज क्वेरी किए बिना कैसे किया जा सकता है), और फिर पिक्सेल-बाय-पिक्सेल आधार पर जानकारी वापस थूकें। उदाहरण के लिए ...
- कोई उपयोगकर्ता 300x300 कैनवास का उपयोग कर रहा है।
- वह एक बिंदु है जहां ऊपरी बाएं कोने
x = .000001
औरy = .0000231
है ज़ूम करता है। - उनकी इस फ्रेम में चौड़ाई और ऊंचाई चुना
w = .00045
औरh = .00045
वह सर्वर के लिए रवाना उन संख्याओं को भेजने और प्राप्त होता है, बारी में, 300 * 300 सूचकांक एक सरणी (एक-एक बिंदु का प्रतिनिधित्व), प्रत्येक में कैनवास पर प्रत्येक पिक्सेल के रंग को निर्धारित करने के लिए आवश्यक जानकारी होती है। मेरा सवाल यह है कि ... पूर्व-गणना वाले मंडेलब्रॉट डेटा को स्टोर करने का सबसे अच्छा तरीका क्या है कि उपयोगकर्ता मनमाने ढंग से एक्स, वाई, डब्ल्यू, और एच मान इनपुट कर सकता है और उसमें जटिल विमान पर बिंदुओं के मूल्यों को तुरंत खींच सकता है रेंज।
उत्तर के लिए धन्यवाद, julienaubert! मैंने सूचना का एक बड़ा हिस्सा जोड़ा है जो (उम्मीद है) आपको थोड़ा बेहतर अवधारणा देने देगा जो मैं प्राप्त करने की कोशिश कर रहा हूं। जब तक यह आपकी मदद करता है, तब तक मैं अपने शब्दों को अनंत तक चलाता हूं (इसलिए बोलने के लिए) जब तक यह आपकी मदद करता है! – treeface
@julienaubert फिर से धन्यवाद, julienaubert। मुझे लगता है कि आप इस प्रारंभिक योजना की अव्यवहारिकता के बारे में सही हैं। मुझे लगता है कि मैं वास्तव में क्या करने की योजना बना रहा हूं, उपयोगकर्ताओं को प्री-रेंडर ज़ूम के माध्यम से चलाने की अनुमति देना है ताकि लोगों को प्रतिपादन के संदर्भ में कैनवास तत्व क्या कर सकता है, इसका एक अच्छा विचार दे सके। मैं संभवतः अधिकतम स्थानांतरण दरों के लिए एक सतत वेब सॉकेट कनेक्शन के माध्यम से भी ऐसा करूंगा। मैंने आपको पहले ही इस जवाब के लिए अंक दिए हैं, लेकिन यदि आपके पास कोई और विचार है, तो मुझे उन्हें सुनना अच्छा लगेगा। एक बार फिर धन्यवाद! – treeface
आप उन्हें कैनवास में क्यों पेंट नहीं करते हैं, और सहयोग करते हैं :) – user348466