एमएसीएस, 26 बाइट्स (संभवतः + 10 = 36, या - 2 = 24)
इस उत्तर में आवश्यक अतिरिक्त कुंजी है Esc। यह कीबोर्ड के आधे हिस्से पर है जो अभी भी बरकरार है, लेकिन किसी कारण से प्रश्न में उल्लेख नहीं किया गया है, इसलिए स्कोर को जुर्माना दे भी सकता है और नहीं भी। ( Escऔर AltEmacs में समतुल्य है; Altयह कीबोर्ड के अक्षुण्ण आधे हिस्से पर भी है , लेकिन प्रश्न में इसका उल्लेख नहीं किया गया है, लेकिन इसे टैप करने के बजाय आयोजित किया जाना है, इसलिए मैं इसे अपनी अतिरिक्त कुंजी के रूप में उपयोग नहीं कर सकता। यह दो बाइट्स बचाएगा। , हालांकि, क्योंकि इसकी तुलना में कम एन्कोडिंग Escहै।)
कार्यक्रम ही (कॉमास ऑन-द-वायर प्रारूप में बाइट्स के बीच की सीमाओं का परिसीमन करता है, जिसे Emacs अपने इनपुट को स्वीकार करने के लिए उपयोग करता है):
W, S, Esc, $, D, A, Ctrl- T, S, R, W, D, Esc, $, 5, Ctrl- Q, 5, f, Ctrl- X, r, Ctrl- Space, 1, Ctrl- X, r, g, 1, Ctrl-T
बाइट गिनती साबित करने के लिए इसे कच्चे बाइट्स के रूप में एनकोडिंग:
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(नोट: कुछ विवरण एमएसीएस कैसे कॉन्फ़िगर किए गए हैं, इसके आधार पर भिन्न हो सकते हैं; इस उत्तर के लिए उद्धृत-चार-मूलांक की आवश्यकता होती है 16 को सेट करने की , और Emacs के लिए मेरे ब्रिटिश अंग्रेजी प्रणाली पर डिफ़ॉल्ट वर्तनी शब्दकोश का उपयोग करने के लिए। ये दोनों लगते हैं। उचित कॉन्फ़िगरेशन सेटिंग्स की तरह, लेकिन यह संभव है कि आपकी Emacs की प्रति को अलग तरीके से कॉन्फ़िगर किया जा सकता है। एक अलग शब्दकोश की संभावना अभी भी एक 26-बाइट प्रोग्राम दे सकती है, लेकिन थोड़ा अलग मिसाइलों का उपयोग करने की आवश्यकता हो सकती है ताकि हम जो सुधार चाहते थे उसे स्वीकार नहीं किया जा सके। गैर-बुलेट-राइडेड कीज़।)
व्याख्या
मुझे यकीन नहीं है कि संपादक के युद्धों पर इसका कोई प्रभाव होना चाहिए, लेकिन Emacs इस प्रश्न के मामले में कम से कम विम को हराते हैं। Emacs बाइट्स में मापा जाने वाले एडिटर गोल्फ के लिए बहुत अनुकूल है, क्योंकि यह जीवा पर बहुत निर्भर करता है, जो कई कीप्स लेता है लेकिन केवल एक बाइट (इस प्रकार Emacs प्रोग्राम अक्सर बराबर Vim प्रोग्राम की तुलना में टाइप करने के लिए धीमा होता है, लेकिन डिस्क से छोटा होता है)। इसके अतिरिक्त, सबसे महत्वपूर्ण Emacs कमांड कीबोर्ड के निचले-बाएँ कोने में होते हैं Ctrl, जो इस तरह के एक प्रश्न के साथ, बहुत करीब होने के लिए सहायक होते हैं।
"आप मान सकते हैं कि गोलियों के आने से पहले आप दुभाषिया खोल / स्रोत संपादक खोल सकते हैं। दुख की बात यह है कि कीबोर्ड के हिट होने से पहले आपने इसमें कुछ भी नहीं लिखा है।", इसलिए मैं मान रहा हूं कि हमारे पास Emacs में एक खाली फ़ाइल खुली है। इसमें पासवर्ड टाइप करना होगा। (हमें बाद में फ़ाइल को सहेजना होगा, और संभवतया Emacs से बाहर निकलना होगा, लेकिन इसके लिए बाइट्स को अन्य लोगों के उत्तरों में नहीं गिना जा सकता है, इसलिए मैं उन्हें यहां भी नहीं गिन रहा हूं। यह बाएं हाथ की ओर का उपयोग करके पूरी तरह से उचित है। कीबोर्ड, हालांकि, Ctrl- X, Ctrl- S, Ctrl- X, Ctrl- C)
इसे एक बार में एक कमांड (या समान कमांड के ब्लॉक) लेना:
- W, S: दर्ज
WS
दस्तावेज़ में।
- Esc, $: वर्तनी-जांचकर्ता आह्वान।
WS
एक वास्तविक शब्द नहीं है, लेकिन यह दो समान अक्षरों के बहुत सारे शब्द पाता है।
- D: वर्तनी जाँचक का उपयोग करना, सही
WS
करना PS
। (जब वर्तनी जाँचक का उपयोग किया जाता है Alt- $जैसा कि यहाँ हुआ ( Escऔर AltEmacs के समतुल्य है), यह केवल एक शब्द की जाँच करता है, इसलिए यह ऐसा करने के बाद निष्क्रिय हो जाता है।)
- A: डालना
A
, देना PSA
।
- Ctrl- - Tपिछले दो अक्षर स्वैप करें, दे रहे हैं
PAS
।
- S, R , W, D: प्रकार
SRWD
, दे PASSRWD
।
- Esc, $,5 : हम वर्तनी-जांचकर्ता फिर से आह्वान, क्योंकि हम अपने गलत वर्तनी सही करने के लिए चाहते हैं
PASSRWD
में PASSWORD
। ध्यान दें कि हम यह अनुमान नहीं लगा सकते हैं कि हम अपनी पहली कोशिश पर जैसा चाहते हैं, वैसा ही होगा PASSWRD
, क्योंकि निकटतम वास्तविक शब्द को स्वीकार करने की कुंजी वह है 0जिसे हम दबा नहीं सकते। नतीजतन, PASSRWD
हम जिस स्थिति में चाहते हैं, उस शब्द को धकेलने के लिए थोड़ा और चरम अतिवाद का उपयोग किया जाता है, जहाँ हम इसे स्वीकार कर सकते हैं।
- Ctrl-Q , 5, f: चरित्र कोड U + 5F, यानी साथ वर्ण सम्मिलित
_
। दस्तावेज़ अब पढ़ता है PASSWORD_
(या जब हम अगली कमांड टाइप करना शुरू करेंगे, तब से पहले, अंडरस्कोर दिखाई नहीं देता मामले में हम एक और हेक्स अंक टाइप करते हैं)।
- Ctrl- X,r , Ctrl- Space, 1: रजिस्टर 1 में वर्तमान कर्सर स्थिति (फ़ाइल की शुरुआत के सापेक्ष) स्टोर कुछ विचित्र कारण से, इस, 1 अनुक्रमित तो (9 पात्रों अब तक लिखा था) कर्सर की स्थिति में है
10
।
- Ctrl- X,r , g, 1: दस्तावेज़ में रजिस्टर 1 की सामग्री को कॉपी करें। यह अब पढ़ता है
PASSWORD_10
।
- Ctrl- - Tकर्सर से पहले दो अक्षर स्वैप करें। हमारे पास अब है
PASSWORD_01
, जैसे सवाल पूछता है।
यदि हमें उपयोग करने की अनुमति दी जाती है Alt, तो हम संभवतः "इनवॉइस स्पेलचैकर" कमांड को सिंगल बाइट के रूप में एनकोड कर सकते हैं , a4
बजाए बाहर वर्तनी के 1b
24
; यह दो बार दिखाई देता है, जिससे बचत के दो बाइट्स होते हैं। (अधिकांश आधुनिक टर्मिनलों का उपयोग1b
24
के लिए एन्कोडिंग के रूप में Alt- $UTF-8 के साथ हुई मुठभेड़ से बचने के लिए, लेकिन a4
एन्कोडिंग भी समय-समय पर, कभी कभी एक विन्यास विकल्प के रूप में उपलब्ध से सामना करना पड़ा है।)
संभव बाइट बचत संभवतया सही करने के लिए गोल्फर मिसपेलिंग शामिल है। PSASWRD
टाइप करने के लिए एक बाइट होगी, लेकिन दुर्भाग्य से, स्पेलसेचर PASSWORD
उस से बाहर निकलने में सक्षम नहीं लगता है, इसलिए PASSRWD
मैंने अब तक पाया सबसे अच्छा तरीका है। पाने के लिए रजिस्टर-आधारित दृष्टिकोण 10
भी हास्यास्पद है, लेकिन Emacs में कहीं से संख्या बनाने के कई तरीके नहीं हैं, और )।0
अन्यथा पकड़ पाने के लिए एक दर्दनाक चरित्र है। (कम से कम आश्चर्यजनक रूप से उपयोगी संयोगों के एक जोड़े थे: कर्सर सिर्फ स्थिति को समाप्त करने के लिए हो रहा है 10
, जिसमें 0
आवश्यक होने पर एक सही शामिल है , और तथ्य यह है कि Emacs g
दस्तावेज़ में एक रजिस्टर की सामग्री को सम्मिलित करने के लिए अनावश्यक रजिस्टर ऑपरेशन को स्वीकार करता है। , अधिक सहज के अलावाi