Bir röportajda şu soruyu aldım (zaten çözemediğim, geçmişimi kandırmaya çalışmıyorum): Oyun pozitif bir tam sayı ile başlıyor . (Örn. ) Bu sayı, ikili gösterime dönüştürülür ve , ayarlanan bit sayısıdır . (Örn. , )A 0 = 1234 N 1 A 0 = b 100 1101 0010 N = 5.
Oyuncu 1 sayı seçer az daha . yalnızca 1 biti 1 olarak ayarlanmış olması gerekir. (Örn. ) . (Örn ). Bir hamle geçerli ise ayarlanan bit sayısı tatmin önceki kısıtlamaları ve varsa hala bir N eşit .A 0 B 0A 1 = A 0 - B 0 A 1 = 1234 - 512 = 722 = b 10 1101 0010 B 0 A 1
Oyuncu 2 den devam geçerli seçerek ardından 1 oyuncu devam eder benzeri, vb. Bir oyuncu geçerli hamlesi kalmazsa kaybeder.B 1 A 2
Her iki oyuncunun da en iyi şekilde oynadığını varsayarsak, kazanan oyuncuyu makul derecede verimli bir yöntem kullanarak belirleyin. (Sorun tanımımda, bunun üzerindeki kısıtlamalar, programın işaretli bir 32 bit tam sayıya uyan birkaç milyon giriş numarası için bir çözüm sunabilmesi gerektiğiydi.) Yani, çözümün tamamen analitik.
Buradaki kişisel ilgim, bana verilen 120 dakika içinde doğruluk hakkında hiçbir geri bildirim olmadan doğru çözümü bulup uygulamamın makul olup olmadığını anlamak; ya da bu "daha önce bu bulmacayı görüp görmedikleri" sorularından biri ise.
Başarısız olmalıydım çünkü makul bir strateji gibi görünen bir şeyi uygulamayı seçtim, bu da bana verilen birkaç test vakası için doğru sonuçları verdi, bu işi hızlı yapmak için çok fazla zaman harcadım ve yanlış teslim ettim tam çıkış zamanım bitti.
Geriye dönüp bakıldığında, küçük başlangıç sayıları için kaba kuvvetli bir arama ve ezberlenmiş kısmi çözümler uygulamalıydım, ancak gezisi her zaman 20/20. Yine de beni flunkee olarak atlatan farklı bir ortak yaklaşım varsa merak ediyorum.