Mantık sorusu

Düşüncelerimi etkilememesi için daha önceki yanıtları okumadım. Eğer bire bir aynısı yazan olmuşsa sebebi budur.

Çözüm önerim şu şekilde;

1000 bardak var ve bunlardan birisi zehirli ise.
Sırasıyla öncelikle bardakları 500, 500 olarak sağ ve sol olarak ayırırım ve 2 köle ile birisini soldakilerden birer yudum, öteki ile de sağdakilerden birer yudum aldırım. Bir sonrası adımda 500, 500 olanları da 250, 250; 250, 250 tekrar 2'ye bölerim bu sefer de 4 köle ile aynı işlemi tekrarlarım. 125, (62, 63), 32, 16, 8, 4, 2 şeklinde ayırarak tekrar ederim. 1 saat sonunda ölen kölelerin kesişiminden tam olarak hangi bardağın zehirli olduğunu bulabilirim. Benim çözüm önerim Humming Code'dan etkilenerek yazıldı.

Eki Görüntüle 1225548

Hatta benzer mantık ile üzerindeki sayının 2'ye bölünebilenlerini 1 köle, 3'e bölünebilenleri bir köle, 5'e, 7'ye, 11'e diyerek asal sayılar ile aslında 10-15 kişi ile bile bulunabilir. Tam sayıyı hesaplamadım ancak bu şekilde daha az kişi ile yapılabilir gibi.

Ikisi de cozuyor. Asal olan cozemuyormus. @Jang Geum'un Danji Yemeği guzel tespit yapti.
Daha dogrusu her asal carpan icin farkli kole kullanmak gerekiyor.

Ilk cozum yonteminde 1000 -> [500]/[500] icin 2 kole -> [250,250]/[250,250] icin 4 kole -> sonrasi icin 8 kole .. seklinde 2+4+8+16... seklinde log 1000 defa kole kullanacaksin.

Buraki problem, zehirli olan iksiri kullandigin kolelerin yarisi icmis olacak her durumda eger yanlis hesap yapmiyorsam aksam aksam. Daha az koleye icirerek optimize edilebilir.

Ikinci yontemde her koleyi bir asal sayidan sorumlu kilip herkes bolebildigi iksiri icecek sekilde dagitiyorsun. 1 - 1000 arasi 168 tane asal sayi oldugu icin bu yontemde de 168 kole kullanacaksin. Burada da asal sayilar fazla oldugu icin zehirli iksiri aslinda cok az kole iciyor. 48 , 24, 840 gibi asal carpani fazla olan iksirleri max kolelerce icmis olacak, worst case durumda 840 numarali iksir zehirliyse 6 kole olecek; halbuku 168 kole kullandik tum bu cozum icin. Burada da daha iyisi yapilabilir.

Benim de ilk aklima gelen cozum asal sayi yontemiydi aslinda. Ama daha optimize bir cozumu var.
 
Son düzenleme:
Asal sayı testinde 10 ve 100 için aynı köleler ölmüyor mu örneğin? Orada farklı kuvvetler için de test yapılması gerek bence.
Benim cevabım 10. Her köle ya yaşar ya ölür zehirden. 1-0 durumu yani. Oradan da 1024 için 10 test yaptığımız gelir. Son 24'ünü atsak 512'dem büyük olduğu için değişen bir şey olmaz.
İlk 1024 sayıyı binary düşünelim. Her sayının yalnız 1 karşılığı vardır. Bu yüzden ölür-yaşar taktiğini buna uyarlayabiliriz.
Basit bir soru da benden gelsin. MxN boyutlu kareli kağıda çizilen bir çizgi en çok kaç birimkare kesebilir?
 
Asal sayı testinde 10 ve 100 için aynı köleler ölmüyor mu örneğin? Orada farklı kuvvetler için de test yapılması gerek bence.
Benim cevabım 10. Her köle ya yaşar ya ölür zehirden. 1-0 durumu yani. Oradan da 1024 için 10 test yaptığımız gelir. Son 24'ünü atsak 512'dem büyük olduğu için değişen bir şey olmaz.
İlk 1024 sayıyı binary düşünelim. Her sayının yalnız 1 karşılığı vardır. Bu yüzden ölür-yaşar taktiğini buna uyarlayabiliriz.
Basit bir soru da benden gelsin. MxN boyutlu kareli kağıda çizilen bir çizgi en çok kaç birimkare kesebilir?

Evet dogru soyluyorsun. 8 numaraki iksiri 3 farkli kole icmeli. Sadece 2 numarali asal kole olurse 4 mu 8 mi ayirt edilemez.

Bu durumda benim 168 kole gerekir iddiasi da yanlis olmus oluyor. Daha fazlasi gerekiyor : )

10 koleyi nasil test ettireceksin? Ornegin 554 numarali iksiri kim icecek?

Birimkare kesmekten kastimiz nedir? 1 birimlik karelerden olusan MxN yuzey alaninda dogrusal bir cizgi atiyoruz sanirim degil mi? Ornegin N = M ise, yani kagit tam kare ise cizdigim kosegen kac birimkare kesmis oluyor? Cizginin icinden gectigi karelerin alani toplami mi?
4619 takımın eleme usulü basit turnuvada ( Maç yapılmadan geçilen turlar sayılmaz.) toplamda kaç maç yapılması gerekir?
4618.
 
Son düzenleme:
Alt alta satır yazarken bir yöntem var. Birinci, ilk 512 sini içer kalanları içmez. İkinci, 1-256 arasını içer,257-512 arasını içmez, 513-768 arasını içer ve kalanları içmez. Böyle daima aralıkları yarıya indiririz ve içer-içmez diye sıralarız. Sonuçta hepsinin farklı bir kombinasyonu oluşur ve ayırt edilebilir.
554 = 2^9 + 2^5 + 2^3 + 2^1. Yani 554'ü içenler 9,5,3,1. Dördü de ölürse sayının 554 olduğunu tek şekilde buluruz.
Evet, birimkarelerden oluşan bir yüzey. Köşegen çizerseniz ve tam çizgi üzerine denk gelirse almıyorsunuz. Bir birimkareyi ikiye bölmeli. İkiye böldüğü karelerin sayısını istiyor.
 

Yeni konular

Geri
Yukarı