रूबी (40 अक्षर)
Az अक्षरों की एक स्ट्रिंग को आधार संख्या 26 में एक = 1, b = 2, ..., z = 26 के साथ व्याख्या करें।
इसलिए "पासवर्ड" को संख्या N = माना जा सकता है
16*(26**7) +
1*(26**6) +
19*(26**5) +
19*(26**4) +
23*(26**3) +
15*(26**2) +
18*(26**1) +
4*(26**0)
यदि हम s = "a"
(वह है: 1) और हम (N-1) कॉल करते हैं s.succ!
, तो s "password"
(N) होगा। दूसरे शब्दों में, एन = 1 + (एन -1)।
एक उदाहरण के लिए जो एन की गणना को सही साबित करने के लिए अधिक तेज़ी से चलेगा, "pass"
लक्ष्य के रूप में विचार करें, जहां एन है
16*(26**3) +
1*(26**2) +
19*(26**1) +
19*(26**0)
तथा
s = "a"
(N-1).times { s.succ! }
puts s #== "pass"
चूंकि हम "a"
भी मुद्रित करना चाहते हैं, हमें आवश्यकता है
s = "`"
N.times { print(s.succ! + " ") }
तो पूर्ण "पासवर्ड" पर वापस जाएं। N = 129052722140
, जा रहा है:
s=?`;0x1e0c2443dc.times{$><<s.succ!+" "}
मैंने अधिक कॉम्पैक्ट रूप में शिकार किया, 129052722140 == 0x1e0c2443db
लेकिन एक नहीं मिला।
(मुद्रण की कमी को ठीक करने के लिए अद्यतन किया गया "a"
, Cary का धन्यवाद।)