En küçük zengin tek sayı, Python programlama

Eğer bir sayının kendisi hariç tam bölenleri toplamı sayıdan büyükse o sayıya zengin sayı diyoruz. Örneğin 12 nin bölenleri 1,2,3,4,6 nın toplamı 16>12 olduğu için zengin sayıdır. En küçük tek zengin sayı nedir?

Basit bir programla bunu bulabiliriz,

def bolenler(n):
  return sum([i for i in range(1,n//2+1) if n%i==0])

sayi = 1
while sayi>bolenler(sayi):
  sayi+=2
print(sayi)
Yorum Durumu: Yorum yok --- Kategori: Bilişim, Zeka Soruları --- Etiketler: , , ---

Palindrom dizi, python programlama çözümü

Uzunluğu 2 veya daha büyük olan ve aynı zamanda tersten ve düzden yazılışları aynı olan karakter dizilerine palindrom denilmektedir. Örneğin “aaa”, “aba”, “cc” birer palindrom iken, “acaba”, “abc”, “a” birer palindrom değildir. Bir karakter dizisinin içerisinden ardışık olarak seçilen herhangi bir parçaya ardışık alt dizi denilmektedir. Örneğin “acaba” dizisi için “aca”, “ab” birer ardışık alt dizi iken, “cb”, “aaa” ardışık alt dizi değildir. 4 karakter uzunluğunda, ardışık alt dizilerinin hiçbiri palindrom olmayan kaç farklı karakter dizisi vardır? [Alfabede 29 karakter vardır]

Sorumuz bu. Elbette çözmek için başka yöntemler var ama estetik bir program parçasını da eklemek istedim.

sonuc = 0
for a in range(29):
    for b in range(29):
        for c in range(29):
            for d in range(29):
                if c != d and b != c and a != b and b != d and a != d:
                    sonuc += 1

print(sonuc)
Yorum Durumu: Yorum yok --- Kategori: Bilişim, Zeka Soruları --- Etiketler: , , ---

Python Programlama ile zeka soruları

Sorumuz şu: Okunuşunda ki harfleri birbirinden farklı en büyük üç haneli sayı nedir?

Elbette bu soruyu elle de çözmek mümkün ama epey deneme yanılma yapmak gerekir. Örneğin yüzbir, okunuşunda harfler farklı, yüzdört yine okunuşunda ki harfleri farklı daha büyük bir sayı.

Gelin bu sorumuzu pyhton ile çözdürelim.

def yaziyap(sayi):
    birler = ["","bir","iki","üç","dört","beş","altı","yedi","sekiz","dokuz"]
    onlar = ["","on","yirmi","otuz","kırk","elli","altmış","yetmiş","seksen","doksan"]
    sayi=str(sayi)
    if sayi[0]=="1":
        return "yüz"+onlar[int(sayi[1])] + birler[int(sayi[2])]
    else:
        return birler[int(sayi[0])]+"yüz" + onlar[int(sayi[1])] + birler[int(sayi[2])]

for n in reversed(range(999)):
    if len(yaziyap(n)) == len(set(yaziyap(n))):
        print(yaziyap(n))
        break

def kısmı bir fonksiyondur, gelen sayının okunuşunu döndürür geriye. Diğer önemli kısım ise gelen string bilginin işlenişidir. if kısmında yaptığımız gelen kelimenin harflerini sayıyoruz, bir de küme yapıp sayıyoruz. Kümelerin şöyle bir güzelliği var ki aynı elemandan birden fazla kabul etmiyor.

Yorum Durumu: Yorum yok --- Kategori: Bilişim, Zeka Soruları --- Etiketler: , , , , ---

Python Programlama Örnekleri

C/C++ , C#, PHP, Small Basic, Java, Delphi sonrasında Python programlama diline de merak saldım ve epey esnek, programcı dostu metotları ve yazım şekli ile iyi ki de öğrenmişim diyorum. Bir kaç dilden benzerlikler var hepsinin en iyi yönleri alınarak yapılmış gibi sanki. Ve özellikle yine meraklı olduğum zeka sorularını çözmekte çok daha iyi.

Bellek kullanımı ve hız konusunda C++ kadar hızlı olmasa da yazım kolaylığı ve daha kısa kodlar yazma konusunda oldukça iyi. Öncelikle girintili yazım kurallarına göre yapılandırıldığı için otomatik olarak okunurluğu ve geliştirilebilirliği arttırıyor, ekip çalışmasına yatkın hale geliyor. Metotlar konusunda ise oldukça zengin ve programcının ihtiyaç duyduğu metotların neredeyse hepsi mevcut.

Bu yazımda bir kaç zeka sorusunun çözümünü programlama ile yapacağım. Zamanla da yorumlara eklerim veya sizin sormak istediğiniz sorular olursa beraber çözmeye çalışırız.

Devamını oku
Yorum Durumu: Yorum yok --- Kategori: Bilişim --- Etiketler: , , , ---

Rüya yorumlayan yapay zeka

Rüya yorumlayabilen yapay zeka mümkün mü değil mi bilmiyorum fakat bunun çalışmalarına başlamış bulunuyorum. Temelde hedeflediğim şey rüyayı anlaması, sembolleri veri tabanından incelemesi ve uygun cümlelerle kendini ifade edebilmesi üzerine olacak.

Proje süreci olarak da bir iki yıl olarak düşünüyorum. Çalışmada takıldığım noktaları veya daha açık söylemek gerekirse dönüm noktalarını paylaşıp fikirlerinizi almayı planlıyorum. Yapacağım iş öyle basit rastgele rüya tabiri değil de, yazılan rüyanın anlaşılması ve öyle yorumlanması olacak.

Hatta asıl planım karşısındakine basit sorular sorarak ve verilen cevaplardan rüyayı çözümleme üzerine davranmasını hedefliyorum.

Yorum Durumu: Bir yorum --- Kategori: Bilişim, Psikoloji --- Etiketler: , , , , , ---

Veri madenciliği

Basit bir tanım yapmak gerekir ise veri madenciliği, büyük ölçekli veriler arasından bilgiye ulaşma, bilgiyi madenleme işidir. Ya da bir anlamda büyük veri yığınları içerisinden gelecek ile ilgili tahminde bulunabilmemizi sağlayabilecek bağıntıların bilgisayar programı kullanarak aranmasıdır. Veri madenciliği deyimi yanlış kullanılan bir deyim olabileceğinden buna eş değer başka kullanımlar da literatüre geçmiştir. Veritabanlarında bilgi madenciliği (knowledge mining from databases), Bilgi çıkarımı(knowledge extraction), data/pattern anaysis (veri ve örüntü analizi), veri arkeolojisi gibi.

Bunların arasındaki en popüler kullanım Veritabanlarında Bilgi Keşfi (VBK – Knowledge Discovery From Databases – KDD) ‘dir. Alternatif olarak veri madenciliği aslında bilgi keşfi sürecinin bir parçası şeklinde kabul görmektedir. Bu adımlar:

1- Veri Temizleme (gürültülü ve tutarsız verileri çıkarmak)
2- Veri Bütünleştirme (birçok veri kaynağını birleştirebilmek)
3- Veri Seçme (Yapılacak olan analiz ile ilgili olan verileri belirlemek )
4- Veri Dönüşümü (Verinin veri madenciliği tekniğinden kullanılabilecek hale dönüşümünü gerçekleştirmek)
5- Veri Madenciliği (Veri örüntülerini yakalayabilmek için akıllı metotları uygulamak)
6- Örüntü Değerlendirme (Bazı ölçümlere göre elde edilmiş bilgiyi temsil eden ilginç örüntüleri tanımlamak)
7- Bilgi Sunumu (Madenciliği yapılmış olan elde edilmiş bilginin kullanıcıya sunumunu gerçekleştirmek),

Veri madenciliği adımı, kullanıcı ve bilgi tabanı ile etkileşim halindedir. İlginç örüntüler kullanıcıya gösterilir, ve bunun ötesinde istenir ise bilgi tabnına da kaydedilebilir. Buna göre, veri madenciliği işlemi, gizli kalmış örüntüler bulunana kadar devam eder.

Bir veri madenciliği sistemi, aşağıdaki temel bileşenlere sahiptir: ·Veritabanı, veri ambarı ve diğer depolama teknikleri ·Veritabanı ya da veri ambarı Sunucusu ·Bilgi Tabanı ·Veri Madenciliği Motoru ·Örüntü Değerlendirme ·Kullanıcı Arayüzü

Veri madenciliği, eldeki verilerden üstü kapalı, çok net olmayan, önceden bilinmeyen ancak potansiyel olarak kullanışlı bilginin çıkarılmasıdır. Bu da; kümeleme, veri özetleme, değişikliklerin analizi, sapmaların tespiti gibi belirli sayıda teknik yaklaşımları içerir.

Başka bir deyişle, veri madenciliği, verilerin içerisindeki desenlerin, ilişkilerin, değişimlerin, düzensizliklerin, kuralların ve istatistiksel olarak önemli olan yapıların yarı otomatik olarak keşfedilmesidir.

Temel olarak veri madenciliği, veri setleri arasındaki desenlerin ya da düzenin, verinin analizi ve yazılım tekniklerinin kullanılması ile ilgilidir. Veriler arasındaki ilişkiyi, kuralları ve özellikleri belirlemekten bilgisayar sorumludur. Amaç, daha önceden fark edilmemiş veri desenlerini tespit edebilmektir.

Veri madenciliğini istatistiksel bir yöntemler serisi olarak görmek mümkün olabilir. Ancak veri madenciliği, geleneksel istatistikten birkaç yönde farklılık gösterir. Veri madenciliğinde amaç, kolaylıkla mantıksal kurallara ya da görsel sunumlara çevrilebilecek nitel modellerin çıkarılmasıdır. Bu bağlamda, veri madenciliği insan merkezlidir ve bazen insan – bilgisayar arayüzü birleştirilir.

Veri madenciliği sahası, istatistik, makine bilgisi, veritabanları ve yüksek performanslı işlem gibi temelleri de içerir.

Veri madenciliği konusunda bahsi geçen geniş verideki geniş kelimesi, tek bir iş istasyonunun belleğine sığamayacak kadar büyük veri kümelerini ifade etmektedir. Yüksek hacimli veri ise, tek bir iş istasyonundaki ya da bir grup iş istasyonundaki disklere sığamayacak kadar fazla veri anlamındadır. Dağıtık veri ise, farklı coğrafi konumlarda bulunan verileri anlatır.
Devamını oku

Yorum Durumu: Bir yorum --- Kategori: Bilim, Bilişim, Denemeler --- Etiketler: , , , , , ---