[linux-programlama] Re: yuzdeli rastgele sayi..

---------

From: a.kadir altan (e108193@metu.edu.tr)
Date: Tue 09 Mar 2004 - 10:37:08 EST

  • Next message: Murat Şişman: "[linux-programlama] Re: Kitaplar"

    merhaba,

    o konuda haklisiniz, ben yazdigim kisimda rastgele uretimini gozardi ederek yazdim...
    istenilen sekilde calisan bir rastgele uretecinden belirli yuzdelere gore nasil
    yonlendirme yapilabilir onu soylemeye calismistim...
    simdiye kadar cevap verenlerden rand() kullananlarin da ayni maksatta oldugunu
    dusunuyorum...

    iyi calismalar,
    kdr

    ----- Original Message -----
    From: "Huseyin Mizan" <hmizan@eliop.com.tr>
    To: <linux-programlama@www.linux.org.tr>
    Sent: Tuesday, March 09, 2004 14:56
    Subject: [linux-programlama] Re: yuzdeli rastgele sayi..

    > Merhaba
    >
    > Bildigim kadari ile rnd fonksiyonu ile her seferinde aynı sonuca
    > ulasirsiniz.
    > Dolayisi ile hep aynı sonucu elde edersiniz.Burda gercekten c yi uzun
    > zamandir kullanmadigimdan
    > dolayi bilgi eksigim olabilir ve daha önce önerdigim konuya bir iki ekleme
    > daha yapılabilir gibi geliyor bana
    > mesala sadece bir for dongüsü yani
    >
    > n_controlsayi=1;
    > do
    > {
    > for(; n_controlsayi<=100;n_controlsayi++)
    > {
    > if(n_controlsayi==100)//eger n_controlsayi 100 e ulasmıssa
    > n_controlsayi=1; //while dongusu donusunde n_cotrolsayinin 1 den
    > baslatılması gerekir
    > if (n_controlsayi==yuzde_m)
    > break;
    > if (n_controlsayi==yuzde_n)
    > break;
    > if (n_controlsayi==yuzde_x)
    > break;
    > }
    > }
    > while(ran()_conditions_not_valid)
    > ve yine
    > n_controlsayi icin bir switch yapısı calıstırılmalıdır.
    > Boyle bir yapıda yuzdesi buyuk olan sayi icin daha uzun süre for dongu
    > zamanı calısacagından sonucda yuzdeligi buyuk olan sayiyi yakalamak mumkun
    > gibi geliyor bana
    >
    > -----Original Message-----
    > From: linux-programlama-bounce@liste.linux.org.tr
    > [mailto:linux-programlama-bounce@liste.linux.org.tr]On Behalf Of serdar
    > Sent: Tuesday, March 09, 2004 2:13 PM
    > To: linux-programlama@liste.linux.org.tr
    > Subject: [linux-programlama] Re: yuzdeli rastgele sayi..
    >
    >
    > Benim dusunucem random fonsiyonunu dongu icerisinde surekli calistirarak
    > sayiya karsilik gelen olasilik degeri yakalandiginda donguye son vermek.
    >
    > Ornek;
    >
    > int N[100]; //sonucta cikarilacak sayilar dizisi
    > int O[100]; //sayi dizisine karsilik gelen olasilik dizisi
    >
    > int son, for1, aranan_sayi;
    >
    > son=3D1;
    > while(son){
    > for(for1=3D0;for1<100;for1++){
    > if( rnd() < O[for1]){son=3D0;for1=3D100;aranan_sayi=3DN[for1]; }
    > }}
    >
    > printf("%d\n", aranan_sayi);
    >
    > Sanirim boyle bir algoritmanin calismaa hizida rnd() (yani sansa) kalir.
    >
    > Saygilarimla ...
    >
    >
    >
    >
    > Selamlar
    >
    > Yan=FDtlar ger=E7ekten g=FCzelve ben de ayr=FDca c programlamay=FD =
    > referans alarak
    > bir do while dongusu icersinde herbir y=FCzde x sayisi icin farkl=FD =
    > olan
    > bir
    > for dongusu ile ihtiyac duyulan elemanlar uretilerek daha sonras=FDnda
    > while
    > sart=FDnda random se=E7im sart=FDn=FD kontrol ederken c=FDk=FDsa =
    > zorlayabilirsiniz
    > gibi
    > gelyor bana.Tabiiki bunu her for dongusunden c=FDk=FDsta continue =
    > sozc=FCg=FC
    > ile
    > while sart=FDn=FD kontrol etmeye zorlaman=FDz gerekir alam=FDnda =
    > dusunmemiz
    > gerekir
    > yani
    >
    > do
    > {
    > n_kontrol=3D0;
    > for (controlsayi=3D0 ; controlsayi<=3Dyuzde_n ; controlsayi++)
    > n_kontrol=3D1;
    > continue;
    >
    > n_kontrol=3D0;
    > for (controlsayi=3D0 ; controlsayi<=3Dyuzde_m ; controlsayi++)
    > n_kontrol=3D2;
    > continue;
    >
    > n_kontrol=3D0;
    > for (controlsayi=3D0 ; controlsayi<=3Dyuzde_x ; controlsayi++)
    > n_kontrol=3D3;
    > 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=FD girmediniz tekrar
    > girebilirsiniz/*yorum k=FDsm=FD*/)");
    > }
    >
    > yukaridaki =F6rnek sadece her yuzde m,n,x degeri icin for donguleri =
    > icinde
    > kalarak ,
    > for dongu islevi bitince while sart=FD kontrolu ile (continue nedeni
    > ile)kendisini
    > cikisa zorlamaktadir. Tabii burada goremedigim k=FDsimlar olabilir ama =
    > bu
    > mant=FDk
    > yakla=FE=FDk sonucu verecektir.Belki de bu random while k=FDsm=FDnda =
    > sistem
    > saatini
    > bir
    > =E7arpan olarak kullanmal=FDd=FDr.veya kulan=FDc=FDnn bir yan=FDt=FD =
    > olabilir bu size
    > kalm=FDs bir
    > tasarim.=D6nerimi denemedim ve sizin icin mant=FDk anlams=FDz gelebilir =
    > .bu
    > sadece
    > bir
    > =F6neri ve while k=FDsm=FDn=FD 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=D6YL=DC
    > 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 :)
    > >
    > >
    > >
    > >
    > >
    >
    >
    >
    >
    >
    >
    >
    >


  • Next message: Murat Şişman: "[linux-programlama] Re: Kitaplar"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.