fazlamesai.net'e Soralım: Erdös Sayısını Hesaplayan Program Yazabilir Misiniz?

0
FZ
Macar matematikçi Paul Erdös gelmiş geçmiş en üretken matematikçilerdendir. Hayatı boyunca yaklaşık 1500 makale yazmış olan Erdös, bu makalelerin çoğunu başka matematikçilerle birlikte yazmıştı. Erdös'ü onurlandırmak amacı ile ortaya atılmış Erdös sayısı diğer matematikçilerle Erdös arasındaki işbirliği mesafesini gösterecek şekilde tanımlanır.

Paul Erdös'ün Erdös sayısı sıfırdır. Başka bir matematikçinin (bu kişiye M diyelim) Erdös sayısı ise şöyle hesaplanır: M'nin birlikte makale yazdığı matematikçilerin Erdös sayılarından minimum olanını al ve buna 1 ekle. Çıkan sayı M'nin Erdös sayısıdır. Yani Erdös ile bir makale yazdı iseniz Erdös sayınız 1, Erdös ile doğrudan makale yazmayıp onunla yazmış biri ile makale yazdı iseniz Erdös sayınız 2, ... şeklinde gider.

Gelelim soruya:
Verili bir K kitaplığına bakıp bakıp verili bir M yazarının Erdös sayısını hesaplayan bir program yazın:

K = [[makale1 yazar1 yazar2 ...] [makale2 yazar3 yazar4 ...] ... [...]]

Programlama dili serbest (ama mümkünse COBOL ya da Visual Basic olmasın :)). Gelen çözümleri yine hep birlikte değerlendireceğiz ve hangi çözümü neden tercih ettiğimizi tartışacağız.

Görüşler

0
fmatak
sanırım soru da bir eksiklik var. bir miktar yazarın erdös numarası verilmeli. ayrıca, makalelerin yazarların connected olduğu da garanti edilmeli. yoksa, çözümsüz durumlar çıkabilir: makale1 erdös ali makale2 veli hüseyin burada, ali ninkini bulabiliriz ama veli ile hüseyin in durumu muamma..
0
myavuzselim

Ilk program benden :) Python ile yazdim.

Bir Erdos sinifi var. Erdos nesnesine kitapEkle([yazar listesi]) seklinde kitap ekliyorsunuz. O andaki erdos sayilarini da erdosNesnesi.erdos seklinde aliyorsunuz.

0
myavuzselim
Bu arada DFS (ozyinelemeli) algoritmadan BFS algoritmaya cevirdim. Buyuk kutuphanelerde DFS bos yere butun kutuphaneyi dolasabilir.
0
myavuzselim
Kodda degisiklik yaptim. Onceki kodda her makale icin yapilan hesap yenileniyordu. Simdi baslangicta bir makaleler listesi veriliyor. Daha sonra istenirse yeni makaleler eklenebiliyor. Girdi olarak erdos.in dosyasi kullaniliyor.
0
anhanguera
selam,

myavuz un kini de benimkini de buraya attim http://forum.fazlamesai.org/viewtopic.php?t=2862

isin arasinda iyi eglence oldu, hadi hayirlisi...

alper.
0
myavuzselim
forum tasiniyormus galiba, sayfa acilmiyor.
0
anhanguera
buyrun burdan yakin o zaman http://gsulinux.org/~distch/erdos.sh.
0
anhanguera
0
anhanguera
selam,

myavuz un kini de benimkini de buraya attim http://forum.fazlamesai.org/viewtopic.php?t=2862

isin arasinda iyi eglence oldu, hadi hayirlisi...

alper.
0
FZ
Konunun çıkış noktası: Programming problem : Erdos numbers. Pascal Bourguignon, Common Lisp ile bir çizge soyutlaması üzerinden breadth-first arama yapan bir örnek vermiş.
0
FZ
#fazlamesai müdavimlerinden Rickdangerous'un Ruby çözüm önerisi: http://rafb.net/paste/results/17lZHw74.html
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Toplum olarak başımız arşa mı değiyor? Yoksa nereye değiyoruz?

Tarık

Her akşam yaptığım gibi yine internet te hedefsiz gezindiğim bir sırada karşıma web uygulamalarının güvenliğiyle ilgili bilgisine güvendiğim ferruh' un sitesi çıktı. Uzun süre bakmamıştım merakla sayfalar, bağlantılar içerisinde dolaşırken ilgimi "SQL Injection Dersleri bölümü çekti.

Küfürbaz Kiosk

redogre

Darbe

redogre

Satrancın Büyük Ustasından Veda

FZ

Amerikalı eski dünya satranç şampiyonu Bobby Fischer, İzlanda'da öldü. 64 yaşındaki Fischer'in uzun süredir hasta olduğu biliniyordu. 1943 doğumlu usta, 1972 Ağustosu'nda SSCB'li rakibi Rus Boris Spasski'yi Reykjavik'te yenerek dünya şampiyonu olmuştu.

Fm Kare'ye Ne Oldu ?

redogre