From: a.kadir altan (e108193@metu.edu.tr)
Date: Tue 09 Mar 2004 - 05:40:42 EST
yine umutla ayni sonuca cikacak bir oneri verebilirim (farkli olarak array
tanimlamiyorsun cok sayida), rastgele secimini 0-100 arasi yap... yine senin
yuzdelerini umutla ayni secelim (tembellik :) ),
> 0: %3
> 1: %10
> 2: %3
> 3: %30
> ...
1 - 3 arasi gelirse 0
3 - (3+10) arasi gelirse 1
13 - (13+3) arasi gelirse 2 ... boyle gider... belki daha kolayina gelecektir yazmak
icin...
kolay gelsin
----- Original Message -----
From: "Umut" <php@kakalak.org>
To: <linux-programlama@www.linux.org.tr>
Sent: Monday, March 08, 2004 22:09
Subject: [linux-programlama] Re: yuzdeli rastgele sayi..
> 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.
>