From: Umut (php@kakalak.org)
Date: Mon 08 Mar 2004 - 15:09:08 EST
Aykut> merhaba..
Aykut> kucuk bir porgram yapmaya calisiyorum ama icinden cikamadigim bir soru var..
Aykut>
Aykut> bir grup sayi arasindan rastgele birini secerken, secilecek sayilarin cikma olasiliklarini
Aykut> yuzde uzerinden nasil belirliyeblilirim?
Aykut>
Aykut> mesela , 1den 10 kadar olan bir sayi grubundan 3 tane sayi sececegim.
Aykut> fakat her bir sayinin secilme olasiligi farkli olacak.
Aykut> mesela 9 unki %10, 3ün %75 gibi..
Aykut>
Aykut> bu islem rastgelelik kavramiyla pek uyusmuyor ama yapilmasi gereken bu..
Aykut> programlama dili onemli degil..merak ettigim nasilbir mantik kurulmasi gerektigi..
Verdiginiz ornegi ele alalim:
Eger 10 [0..9] tane sayiniz var ve ihtimalleri ifade etmek icin % yeterli diyelim ki.
0: %3
1: %10
2: %3
3: %30
...
olsun. O halde siz 100'luk bir dizi olusturun ve degerlerini:
3 tanesini 0 ile
secim[0]=0
secim[1]=0
secim[2]=0
10 tanesini 1 ile
secim[3]=1
secim[4]=1
vs doldurun. Simdi random degiskeniniz ile 0..99 arasinda bir sayi secin, sectiginiz
sayiya karsilik gelen dizi elemani sizin istediginiz oranlarda gelmis olacaktir.
Az sayida secenek ve %'li ifadeler icin bu yontem gecerli olabilir.
Eger olasiliklari ifade etmek icin daha fazla basamaga ihtiyaciniz varsa
bir agirlik fonksiyonu bulmaniz daha yerinde olabilir. Bunun icin
yapmaniz gereken elinizdeki verilerin herhangi bir dagilima uyup
uymadigini bulmak olabilecegi gibi baska bir boyutta:
elinizdeki 10 tane sayiyi X,
bunlarin olasiliklarini Y olarak alacak 10 tane nokta alrisiniz.
Sonra bu noktalardan gecen (yaklasik olarak tabii ki) fonksiyonu
bulmaya calisirsiniz. Bunun icin ihtiyaciniz analitik geometri.
Eger sayi iliskileriniz sabit degilse, yani her defasinda bir fonksiyon
hesaplamaniz gerekirse en guzeli ilk yontem gibi geliyor. dinamik
olarak array'in icini doldurmak seri bir yontem olacaktir.
saygilar.
Umut
-- This message has been scanned for viruses and dangerous content, and is believed to be clean.