From: Huseyin Mizan (hmizan@eliop.com.tr)
Date: Tue 09 Mar 2004 - 06:43:06 EST
Selamlar
Yanıtlar gerçekten güzelve ben de ayrıca c programlamayı referans alarak
bir do while dongusu icersinde herbir yüzde x sayisi icin farklı olan bir
for dongusu ile ihtiyac duyulan elemanlar uretilerek daha sonrasında while
sartında random seçim sartını kontrol ederken cıkısa zorlayabilirsiniz gibi
gelyor bana.Tabiiki bunu her for dongusunden cıkısta continue sozcügü ile
while sartını kontrol etmeye zorlamanız gerekir alamında dusunmemiz gerekir
yani
do
{
n_kontrol=0;
for (controlsayi=0 ; controlsayi<=yuzde_n ; controlsayi++)
n_kontrol=1;
continue;
n_kontrol=0;
for (controlsayi=0 ; controlsayi<=yuzde_m ; controlsayi++)
n_kontrol=2;
continue;
n_kontrol=0;
for (controlsayi=0 ; controlsayi<=yuzde_x ; controlsayi++)
n_kontrol=3;
continue;
}
while(random (z)_conditions)
switch (n_kontrol)
{
case 1:
printf("Rasgele uretim sayiniz 1 yani yuzde_n");
break;
case 2:
printf("Rasgele uretim sayiniz 2 yani yuzde_m");
break;
case 3:
printf("Rasgele uretim sayiniz 3 yani yuzde_x");
break;
default :
printf("yuzde_x,yuzde_m,yuzde_n icin hicbir sayı girmediniz tekrar
girebilirsiniz/*yorum kısmı*/)");
}
yukaridaki örnek sadece her yuzde m,n,x degeri icin for donguleri icinde
kalarak ,
for dongu islevi bitince while sartı kontrolu ile (continue nedeni
ile)kendisini
cikisa zorlamaktadir. Tabii burada goremedigim kısimlar olabilir ama bu
mantık
yaklaşık sonucu verecektir.Belki de bu random while kısmında sistem saatini
bir
çarpan olarak kullanmalıdır.veya kulanıcınn bir yanıtı olabilir bu size
kalmıs bir
tasarim.Önerimi denemedim ve sizin icin mantık anlamsız gelebilir .bu sadece
bir
öneri ve while kısmını istediginiz herhangibir sartla kontrol edebilirsiniz
-----Original Message-----
From: linux-programlama-bounce@liste.linux.org.tr
[mailto:linux-programlama-bounce@liste.linux.org.tr]On Behalf Of Serdar
KÖYLÜ
Sent: Tuesday, March 09, 2004 9:51 AM
To: linux-programlama@liste.linux.org.tr
Subject: [linux-programlama] Re: yuzdeli rastgele sayi..
Selamlar..
Optimizasyon meselesi :)
Eger "optimize for speed (Optimize for Less CPU Usage)" hiz icin
optimize etmek istiyorsaniz array kullanmak iyidir. Yok, "Optimize for
size" olarak dusunuyorsaniz bir fonksiyon ile yapmak gerekir.
Diger yandan mesela 5 adet deger varsa, cogu zaman 100 elemanli bir
array yapmak pek akillica degildir. Ornegin,
A->%40
B->%5
C->%15
D->%30
E->%10
ise, 1 tane B, 8 tane A, 3 tane C, 6 tane D, 2 tane E olmak uzere, 20
elemanli bir array yeterli olacaktir. OKEK/OBEB Vs. mevzulari.
Olaya birde su acidan bakin, eger siz 100.000 deger icinden bazilarinin
farkli frekanslarda olmasini istiyor olsaydiniz, size ne kadar bir array
gerekirdi?
Saygi ve sevgiler..
> merhaba..
>
> yardimlariniz icin tesekkur ederim...
>
> rastgelelik kavrami acisindan en dogru cozum herbir sayisi dize icerisinde
> yuzde oraninca tekrarlamak sanirim..
>
> tekrar tesekkurler :)
>
>
>
>
>