Soruyu ilk önce kendi çözdüğüm yöntemle çözeceğim. Daha sonra da daha kolay ve mantıklı olduğunu düşündüğüm bir çözümü vereceğim.
1. Çözüm
Çözüme küçük dizilerle soldan başladım. İlk adım olarak ilk basamağın 0 olamayacağını gördüm. Bu şifrede 0 tane 0 var demek kendisiyle çelişiyor çünkü. Demek ki en az bir tane 0 olmalı.
O zaman çözüm denememe bir tane 0 ile başladım. İlk dizim oldukça kısaydı.
1
Tabii ki bu dizi şartların hiçbirini sağlamıyor. O zaman bir sonraki basamağı da kullanayım dedim. O zaman da bir sorunla karşılaştım ama. Bir tane 1 var dersem yine olmayacak çünkü o zaman dizi 11 olacak, yani iki tane 1 olacak. Bunu geçiştirmek için o basamağa 2 yazım. Dizimin şimdiki hali şöyle oldu:
1 2
Dizide şimdilik bir tane de 2 olduğundan bir sonraki basamağa 1 yazabileceğimi gördüm.
1 2 1
İki tane 1, bir tane 2 kısmı güzel. Sadece bir tane de 0 lazım. O zaman bir sonraki basamağa 0 yazabilirim.
1 2 1 0
Bu mini dizi istenen şartların hepsini sağlıyor. Tek sorun şifrenin 10 basamaklı olması. Burada bu düzeni kullanarak diziyi istediğim şekilde uzatabileceğimi sezdim. Bunun en kolay yolu 0 rakamlarının adedini artırmak. Bu sırada bir adet 1 sayısını kaybedeceğim ama 0 rakamlarının adedinin gösterildiği basamağa o kaybettiğim 1 rakamını yazarsam sorun çözülecek.
Şimdiye kadar dört basamağı hallettim (ilk basamağın değeri henüz tam değil). Yani altı basamak daha var. Bu basamakların hepsi 0 olursa dizi şöyle olur.
7 2 1 0 0 0 0 0 0 0
Tabii ki bir adet 7 rakamını göstermek için bir tane daha 1 lazım ama ona yer kalmadı. O zaman yedi tane değil altı tane 0 olduğunu var saymam lazım diye düşündüm.
6 2 1 0 0 0 1 0 0 0
Dikkat ettiyseniz 6 rakamlarının adedini veren yedinci basamağa bir tane 1 koyunca geriye sadece altı tane 0 için yer kaldı. Bu şifre soruda verilen her şartı sağlamakta. Bu yöntemin bir başka zayıf tarafı da başka bir çözüm olup olmadığını göstermiyor.
2. Çözüm
Bu çözümde şifre sağdan sola doğru aranıyor.
En sağdaki basamak şifredeki 9 rakamının adedini veriyor. Bu basamak 1 olursa diğer herhangi bir basamakta bir adet 9 olmalı. Bu 9 rakamını başka bir yere koyamıyoruz ama. Bunu bir iki örnekle göstermeye çalışayım.
9 0 0 0 0 0 0 0 0 1 Eğer ilk basamağa koyarsak bir tane 0 eksik kalıyor. 1 9 1 1 1 1 1 1 1 1 Eğer ikinci basamağa koyarsak diğer basamaklardaki 1 rakamları kullanılmamış oluyor.
Bu şekilde son rakamın 0 olması gerektiğini bulabiliriz.
Şimdi sağdan ikinci basamağa bakalım. Bu basamak şifredeki 8 rakamının adedini verecek. Buraya da 1 koyarsak dizi aşağıdaki gibi gözükecek
_ _ _ _ _ _ _ _ 1 0
Şimdi 8 için bir yer seçelim. İki aday var, ya ilk basamak ya da ikinci basamak. Çünkü diğer her basamak on basamaktan fazlasını gerektirecek. İlk basamağa 8 koyarsak, şifrede sekiz tane 0 olacak demektir. Bunu bir deneyelim:
8 0 0 0 0 0 0 0 1 0
Neredeyse bir çözüm olabilecekmiş. İkinci basamak 0 olamaz çünkü şifrede en az bir tane 1 var fakat bu basamağa 0 yazmazsak da o zaman sekiz tane 0 kullanamayacağız.
1 8 1 1 1 1 1 1 1 0
Bu da çözüm olamıyor çünkü şifremizde 2, 3, 4, 5, 6, 7, 8 rakamlarını hiç kullanmadık.
Demek ki sondan ikinci basamak da 0 olmalı.
_ _ _ _ _ _ _ _ 0 0
Şimdi sondan üçüncü basamağa bakalım. Bu basamak 1 olursa diğer basamakların birinde 7 olmak zorunda olur. Ayrıca ikinci basamak (1 rakamının adedi) da en az 2 olmalı. İlk basamak da en az 2 olmalı, çünkü şimdiye kadar iki tane 0 kullandık. Bu verilerden sonra 7 rakamını da ya ilk ya ikinci basamakta kullanmak zorundayız. Önce ikinci basamağa bakalım:
1 7 1 1 1 1 1 1 0 0
Bu şifre olmuyor çünkü birinci basamak bile yanlış.
Şimdi 7 rakamını ilk basamakta kullanalım.
7 0 0 0 0 0 0 1 0 0
Bu da olamıyor çünkü şifrede bir adet 1 var fakat ikinci basamak 0.
O zaman son üç basamak 0 olmak zorunda.
_ _ _ _ _ _ _ 0 0 0
Sıradaki basamak şifrede kaç tane 6 olduğunu söylüyor. İki tane 6 için yer olmadığından 1 rakamını deneyelim.
_ _ _ _ _ _ 1 0 0 0
İlk ve ikinci basamaklar dışında 6 kullanamayacağımıza göre (yoksa şifrede altı adet 2, 3, 4 ya da 5 olması gerekecek ve bunu on basamakla yapmak mümkün değil) yine ikinci basamakla denemeye devam edelim.
_ 6 _ _ _ _ 1 0 0 0
Şimdi belirlenmemiş beş basamak var ve altı tane 1 kullanmamız lazım. Demek ki hepsi 1 olmalı ama bu da mümkün değil, ilk basamak en az 3 olmalı (şimdiden üç tane 0 var). O zaman 6 rakamını ilk basamakta deneyelim.
6 _ _ _ _ _ 1 0 0 0
Yine beş rakam bulmamız lazım ve bunların üç tanesi 0 olmalı. Hangi üçünün 0 olduğunu görmek kolay. Üçüncü, dördüncü ya da beşinci basamakta 0 haricindeki herhangi bir rakam için yeterli boş basamağımız olmadığından bu basamakları 0 yapalım.
6 _ _ 0 0 0 1 0 0 0
Şimdiye kadar bir tane 1 kullandık ama ikinci basamağa 1 yazarsak iki tane 1 kullanmış olacağız. Demek ki ikinci basamağa en az 2 yazmamız lazım.
6 2 _ 0 0 0 1 0 0 0
Şifrede bir tane 2 kullandık, o zaman üçüncü basamak da 1 olmalı.
6 2 1 0 0 0 1 0 0 0
Basamakları kontrol edersek bu şifrenin sorudaki şartları sağladığını görürüz.
İkinci çözüm biraz uzunmuş gibi görünse de birinci çözüme göre ihtimalleri daha iyi elemekte. Bu yöntem sona kadar devam ettirilerek başka çözüm olup olmadığı da daha kolay görülebilir bence.