Merhaba, Bugün mukavvemet(!) dersinde hoca çok enteresan bir soru yöneltti:
a, b, c ve d şeklinde 4 tane tamsayımız var ve bunlar 0'dan 9'a kadar rakamlardan oluşuyor. Öyle ki, bir rakam tek bir seferliğine kullanılabiliyor. (Yani, örneğin b'nin içinde 7 kullanıldıysa, başka bir yerde 7 kullanılamıyor.) Acaba bu kurallar altında (a+b+c+d)^2 = abcd denklemini sağlayan tamsayılar hangileridir? İlk bakışta bunun kağıt kalem ile hesaplanamayacağını düşünerek, hemen "Acaba bunun programını yazsak iç içe geçen döngüler ne karmaşıklıkta olur?" deyip ufak bir hesap çıkardım, iç içe dört toplam-fark epey devasa bir rakam ortaya koydu. Sonra kafamı ellerimin arasına alıp bir de olaya cebirsel olarak yaklaşsam dedim: a = A0 * 10^0 + A1 * 10^1 + ... + A9 * 10^9 b = B0 * 10^0 + B1 * 10^1 + ... + B9 * 10^9 c = C0 * 10^0 + C1 * 10^1 + ... + C9 * 10^9 d = D0 * 10^0 + D1 * 10^1 + ... + D9 * 10^9 Şeklinde tüm a, b, c, d sayılarına hepsinin içinde 0, 1, 2, ..., 9 olma olasılıklarına göre ayırdım. Ama bu seferde An, Bn, Cn, Dn katsayıları deterministik olmadığından abcd sayısı için bir şey söyleyemedim. Programı yazmaya girişmeden önce işlemin daha kolay bir yolu olup olmadığını merak ediyorum. Aklıma en son gelen yöntem ise, amele gibi tüm alt kombinasyonları ayrı dosyalara yazdırıp ardından bunları merge join etmek. Sizin fikirleriniz neler? İyi çalışmalar. _______________________________________________ cs-lisp mailing list [email protected] http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

