Bir güreş turnuvasına n tane güreşçi katılmaktadır. Birinci turda güreşçiler kura ile eşleşiyor ve yenilen eleniyor. Yenen ikinci tura çıkıyor. Tek kalan olursa o da ikinci tura çıkyor. İkinci ve daha sonraki turlarda da aynı prosedür uygulanıyor ve sonunda bir pehlivan şampiyon oluyor. Turnuvada kaç güreş tutulmuştur?
n'e bagli fonksiyon mu bulmamiz isteniyor?(otagimi kurayim buraya da)
Aynen sayın hocam
Hocam, n−1 güreş tutulmuyor mu?
f:N≥1→N
f(n)=n−1 (n güreşçi sayısı)
Bir hata mı yapıyorum?
İddianı tümevarımla ispatlayabilirsin yigitsadic. Bir de, gösterişli fonksiyon kullanmana gerek yok :)
Gerekçesini belirtir misiniz? Neden n−1 olduğunun gerekçesi?
Kusura bakmayın zamanında cevap veremedim. Aşağıdaki koddaki gibi düşünmüştüm.
def f(n): if n==2: return 1 return floor(n/2) + f(n-(n/2))
n−1 kisinin elenmesi icin n−1 mac yapilmasi gerekir.
Aynen öyle. Yenilen elendiğine göre ve n−1 kişi elendiğine göre toplam n−1 güreş tutulmuştur. Mantık, katıksız sanattır.