Ruby (40 karakter)
Az harfli bir dizeyi 26 tabanındaki sayı olarak a = 1, b = 2, ..., z = 26 ile yorumlayın.
Yani "şifre" N = olarak düşünülebilir
16*(26**7) +
1*(26**6) +
19*(26**5) +
19*(26**4) +
23*(26**3) +
15*(26**2) +
18*(26**1) +
4*(26**0)
İzin verirsek s = "a"(yani: 1) ve (N-1) çağrıları yaparsak s.succ!, s "password"(N) olur. Başka bir deyişle, N = 1 + (N-1).
Daha hızlı çalışacak bir örnek için, N hesaplamasının doğru olduğunu kanıtlamak için "pass", hedef olarak düşünün .
16*(26**3) +
1*(26**2) +
19*(26**1) +
19*(26**0)
ve
s = "a"
(N-1).times { s.succ! }
puts s #== "pass"
Biz yazdırmak istediğiniz beri "a"de biz gerekmez
s = "`"
N.times { print(s.succ! + " ") }
Yani tam "parola" geri. N = 129052722140, ayrılıyor:
s=?`;0x1e0c2443dc.times{$><<s.succ!+" "}
Daha kompakt bir form için avlandım 129052722140 == 0x1e0c2443db ama bulamadım.
( "a"Cary sayesinde baskı eksikliğini gidermek için güncellendi .)