Yardım et! Stack Exchange'e yeni giriş yaptım ancak şifremin ne olduğunu unuttum! Oturumu kapatmadan önce halletmek için bir yola ihtiyacım var.
Neyse ki ben mükemmel bir bilgisayar korsanıyım. Şifremin karma değerini bulmakla kalmayıp aynı zamanda Stack Exchange'in karma algoritmasını da buldum! Her basamağın ASCII değerini, o basamağın yeri ile çarpılarak alır, ardından tüm bu değerleri bir araya getirir. Örneğin:
"135" -> 1*49 + 2*51 + 3*53 = 310
Parolanın 3 basamak uzunluğunda olduğunu ve her karakterin 0 ile 5 arasında bir sayı (regex ile eşleşecek şekilde ^[0-5]{3}$
) arasında olduğunu hatırlıyorum , ancak bu tahmin etmek için hala çok fazla seçenek var. Bir hash'i tekrar potansiyel şifrelere dönüştürebilen bir programa ihtiyacım var, ancak uzman bir bilgisayar korsanı olmasına rağmen, hayatımı kurtarmak için kod yazamıyorum! Bu testleri elle yazabildim:
input -> output
288 -> 000 // lowest possible hash
290 -> 200, 010
298 -> 022, 050, 103, 131, 212, 240, 321, 402, 430, 511
318 -> 555 // highest possible hash
Biriniz benim için bir karmaşa alacak ve kullanabileceğim tüm şifreleri yazdıracak bir program yazabilir mi?
Giriş her zaman en az bir geçerli şifre üretebilecek. Dizeler açıkça tanımlandığı sürece herhangi bir çıktı formatına izin verilir. Önde gelen sıfırlarla ilgili endişelenmiyorum, bu yüzden potansiyel bir şifre ise 001
kabul ediyorum 01
veya 1
.
Lütfen Stack Exchange'in kilitlenmeme yardım et!
puanlama
Bu kod golf , yani her dilde en kısa cevap kazanır!
"135" -> 1*49 + 2*51 + 3*53 = 310
54
önündeki sıfırları bulabilirim.
1
'ın Ascii değeri49
yerine48
?