Şimdi Ara

Random gelen sayının olasılıgını arttırmak !

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
644
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,

    Tablom,
    ID - LOKANTA
    1- ADRES
    2- KUZEY
    3- CELAL
    4- ŞİŞKOM

    Bunlar tablomdaki değerlerim, ben burda 1. gün (1,4) ile random bir şey alıyorum.İlk gün Kuzey cıktı. 2. gün kuzeyın gelme olasılıgını nasıl arttırabılırım ?



  • quote:

    Orijinalden alıntı: blacq0o

    Merhaba,

    Tablom,
    ID - LOKANTA
    1- ADRES
    2- KUZEY
    3- CELAL
    4- ŞİŞKOM

    Bunlar tablomdaki değerlerim, ben burda 1. gün (1,4) ile random bir şey alıyorum.İlk gün Kuzey cıktı. 2. gün kuzeyın gelme olasılıgını nasıl arttırabılırım ?

    5-KUZEY ekleyebilirsin. ( Tabloya degil, gecici olarak veri yapisina )
  • Mephalay M kullanıcısına yanıt
    Geçici olarak olmuyor :)
    Bana sürekli lazım tabloya ekleme olayını da yaptığımızda problem oluyor.

    Aklımdakini biraz daha açmak gerekirse, bu her gün olacak ve popularitesi artacak atıyorum 5 sefer KUZEY geldi kuzeyin diğerlerine göre
    gelme oranı % 20 artacak.



    < Bu mesaj bu kişi tarafından değiştirildi blacq0o -- 26 Kasım 2014; 16:50:40 >
  • Veritabanında ek bir şey tutmadan arttırma şansın yok, eğer veritabanında bişey tutma şansın varsa, en son gelen lokantayı tutarsın, rastgele seçme fonksyonunun limitini 0-4 aralığında yaparsın, eğer 0 gelmişse yine son gelen lokantayı dönersin.
  • Bir history veya bir rating veya bir agirlik yapisi kullanmadan yapmak imkansiz.
    Yani o tabloya veya baska bir tabloya birsey eklemen lazim.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • blacq0o kullanıcısına yanıt
    Gecici olarak yaparsin, madem bir olayin olma sikligi, o olayin tekrar olusma ihtimalini arttiriyor, o halde tabloya "Occurence" diye yeni bir field ekle. Ilk basta soyle olsun:
    a - 1
    b - 1
    c - 1
    d - 1
    seklinde. Ilk random sonucu gelen degerin occurence' ini 1 arttirip kaydet. Yeni durumda olusan tablo diyelim ki su sekilde olsun:
    a - 1
    b - 2
    c - 1
    d - 1
    Daha sonra ihtimal hesabi yaparken tablodaki degerleri occurence miktarlari kadar tekrarlanacak sekilde listeye at. Yani yeni listemizde {a,b,c,d,b} olacak. Daha sonra da listenin size() i max olacak sekilde random bir sayi generate edip yeniden occurence 'a yazdir, db ye kaydet.

    Ihtimali progresif bir sekilde arttirmak biraz daha zor bir is. Yani bunun matematiksel kismini iyi ayarlamak gerekiyor. %20 daha fazla gelme ihtimalinden kastin su ise eger: Ilk durumda %25 iken her elemanin, Ikinci durumda %45 e yukselmesi gerekiyor, o halde soyle bir tabloya ihtiyacin var yukaridaki algoritma ile asagi yukari:

    a - 45
    b - 17
    c - 17
    d - 17

    Yani tablodaki degerlerin gelme ihtimallerinin kesinlikle senin kontrolunde olmasini istiyorsan occurence toplami sabit kalacak sekilde agirliklarini degistireceksin.

    Dediklerimin hepsinin disinda muhtemelen bu istedigini ( weighted probability ) yapan bir API vardir ama senin bu kadar kompleks bir seye nicin ihtiyacin oldugu kismina dair suphelerim var : )




  • Kaygerya kullanıcısına yanıt
    ID
    LOKANTA
    POPULARITE
    şeklinde db yapsam

    1-ADRES - 2
    2-KUZEY - 3
    3-TEST - 1

    Bu sekilde tutuyorum (1,3) ile de random aldım diyelim kuzeyın gelme olasılıgını bir nebze nasıl attırabilirim burada saksı duruyor.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • her bir restaurant seçildiğinde, popularitesi 1 artacak. ama populerite rakamları arttıkça, mevcutta
    Testin gelme ihtimali %16, kuzeyin %50 , adresin %34.
    her seçimde populeriteyi 1 arttırarak, gidersen, 2-3 ay sonunda, kuzey %90 oranında, adres %7 oranında Test de %3 oranında geliyor olacak. çünkü seçilen bir sonraki seçimde daha populer olacak.

    Her restaurant için 1 ile toplam popularite arasında random atar, üzerine de popularitesini ekler, içlerinden en yuksek puanı alanı gösterirsin.

    ADRES - 2 -> 1 ile 6 arasında random at gelen sonuca 2 ekle
    2-KUZEY - 3 -> 1 ile 6 arasında random at gelen sonuca 3 ekle
    3-TEST - 1 -> 1 ile 6 arasında random at gelen sonuca 1 ekle

    içlerinden en yuksek puanı alanı getirmen gerek. Puanı aynı olan 2 restaurant oldugunda populeritesi yüksek olanı getirirsin.
  • Diziye aktar. Birden fazla değere, olasılığı fazla olmasını istediğin değere ekle. Veritabanını da yormazsın.
  • Kaygerya kullanıcısına yanıt
    Dediğiniz şekilde kodu çevirdim.Ama ufak bir sorun var.
    (1,6) arasında random atadığım zaman ilkini büyük atarsa diğerlerini de büyük ilkini küçük atarsa diğerlerini de küçük atıyor.
    % 90 gibi bir oranla da popülaritesi en büyük olan geliyor
     Random gelen sayının olasılıgını arttırmak !



    Ama istediğim şeyi % 90 kadar yapmış oldum. Teşekkürler.



    < Bu mesaj bu kişi tarafından değiştirildi blacq0o -- 28 Kasım 2014; 17:03:00 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.