यहां एक समस्या है जिसके लिए मैं सबसे अच्छा समाधान बनाने की कोशिश कर रहा हूं। मेरे पास [0 ... एन] की सीमा में गैर-ऋणात्मक पूर्णांक का एक सीमित सेट है। मुझे इस सेट में प्रत्येक नंबर को एक स्ट्रिंग के रूप में प्रस्तुत करने में सक्षम होना चाहिए और इस तरह की स्ट्रिंग को पीछे की ओर मूल संख्या में परिवर्तित करने में सक्षम होना चाहिए। तो यह एक bijective समारोह होना चाहिए।बायक्टेक्टीव "इंटीजर <-> स्ट्रिंग" फ़ंक्शन
अतिरिक्त आवश्यकताएँ हैं:
एक नंबर के- स्ट्रिंग प्रतिनिधित्व कम से कम कुछ हद तक मूल संख्या अंधेरा करना चाहिए। तो एफ (x) = x.toString() जैसे आदिम समाधान काम नहीं करेंगे।
- स्ट्रिंग लंबाई महत्वपूर्ण है: कम बेहतर।
- एक कश्मीर की स्ट्रिंग प्रतिनिधित्व जानता है, मैं इसे K + 1 की स्ट्रिंग प्रतिनिधित्व अनुमान लगाना (कुछ हद तक) गैर तुच्छ हो करना चाहते हैं।
पी .1 & पी.2 के लिए स्पष्ट समाधान बेस 64 (या जो भी सभी मूल्यों को फिट करने के लिए बेसXXक्स) नोटेशन का उपयोग करना है। लेकिन क्या हम न्यूनतम अतिरिक्त प्रयास के साथ पी 3 में फिट बैठ सकते हैं? सामान्य ज्ञान मुझे बताता है कि मुझे अतिरिक्त जैविक "स्ट्रिंग < -> स्ट्रिंग" बेसXXक्स मानों के लिए फ़ंक्शन की आवश्यकता है। कोई सुझाव? या शायद सभी 3 आवश्यकताओं को फिट करने के लिए बेसXXक्स की तुलना में कुछ बेहतर है?
दाईं ओर 'संबंधित' सूची में कई समान qs हैं, ऐसा लगता है कि – AakashM
परिभाषा के अनुसार, एक उलटा obfuscating समारोह एक "साइफर" है। 'Enc (k) 'से' enc (k + 1)' की गणना करने में सक्षम नहीं होने के कारण एक अच्छा सिफर के लिए बहुत अधिक आवश्यक है, क्योंकि यदि आप एक ज्ञात सादे टेक्स्ट/सिफर जोड़ी कर सकते हैं तो आपको आस-पास के सादे टेक्स्ट के रूप में कई सिफरटेक्स मिलेंगे आपके पास गणना करने का समय था। मुझे लगता है कि सवाल यह है कि, कैसे "बुरा" (या महंगा-से-गणना) एक सिफर आप छोटे सिफर ग्रंथ प्राप्त करने के लिए स्वीकार करने के इच्छुक हैं, भले ही आप नमक का उपयोग करने जा रहे हों या नहीं, और क्या आपको एक स्ट्रीमिंग मोड –
स्ट्रीमिंग मोड महत्वपूर्ण हैं और पूरी तरह से तुच्छ नहीं हैं, क्योंकि यदि आपका साइफर इसे एक नंबर के प्रतिनिधित्व को उलटा करने के लिए अक्षम बनाता है, तो एक हमलावर जो संख्याओं की एक लंबी श्रृंखला देख सकता है और सादे टेक्स्ट डेटा के संभावित वितरण के बारे में कुछ जानता है विशिष्ट सामान्य सादे पाठ मानों के सिफ़ेर्ड मानों की पहचान करने के लिए आवृत्ति विश्लेषण, मार्कोव चेन विश्लेषण इत्यादि करने में सक्षम हो सकता है। एक स्ट्रीमिंग मोड विफल होने के उदाहरण के लिए http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 देखें। –