Asal Sayı Problemi
July 27, 2020Bilgisayarımdaki arşivden çıkan bir başka soru ile karşınızdayım. Soru metni elimde yok ama hafızam beni yanıltmıyorsa aşağıdaki gibiydi. Alice ve Bob kendi aralarında bir oyun icat ediyorlar. İki arkadaş 1..10^9 arasındaki bazı asal sayıları bulmak istiyorlar.
Alice: sadece 1,3,5 rakamlarından oluşan asal sayıları sayıyor. Diğer değişle sayının tüm basamakları 1,3,5 rakamından biri olmak zorunda. Bob: sadece 5,7,9 rakamlarından oluşan asal sayıları sayıyor.
İkisi de işlemlerini bitirince buldukları asal sayı miktarını karşılaştırıyor. Kim daha fazla asal sayı bulursa o kazanıyor.
Beklenen girdi: yok. Beklenen çıktı: kim kazandıysa onun adını basıyoruz (Alice veya Bob)
Çözüm
Problemdeki input single pass için çok büyük. Dolayısı ile daha iyi bir çözüme ihtiyacımız var. Sadece 1, 3 ve 5 rakamlarından oluşan tüm tam sayıları bulalım.
Bunun için ağacımsı bir yapı kullanabiliriz ki bize O(2^n) gibi bir karmaşıklık verir. n çok büyük olmadığı için kolayca hesaplayabiliriz.
Basamak sayısı 3 olduğu için perfectly balanced ternary tree oluşturduğumuzda elimizde (3^10 - 1) / 2 = 29524 tane değer olur. Bu sayıları depolamak gibi bir derdimiz yok geldiği gibi işleyebiliriz. Asallık testi için klasik O(sqrt(n)) kompleksitesine sahip bir algoritma kullanırsak tamamız.
|
|
hidden
John von Neumann – The Man from the Future
Before I read The Man from the Future by Ananyo Bhattacharya, I only knew about John von Neumann in two contexts: that computers use the von Neumann architecture, and that he appeared in a story about a mathematical problem I … Continue reading →
via Henrik Warne's blogThe Review Is the Action Item
2024/05/30The Review Is the Action ItemI like to consider running an incident review to be its own action item. Other follow-ups emerging from it are a plus, but the point is to learn from incidents, and the review gives room for that to happen.This is no…
via Ferd.caHOWTO: Change your behavior
In theory, behavior change should be easy. At first glance, it seems like you control your behavior. So, if you desire different behavior, why doesn’t your behavior change as instantly as your desire to change it? In short, lasting change of habitual behavio…
via Matt Might's blog