folder Tahribat.com Forumları
linefolder C - C++
linefolder Random Hep Aynı Sayıyı Seçiyorsa Ne Yapmalı?



Random Hep Aynı Sayıyı Seçiyorsa Ne Yapmalı?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    bilenyok
    bilenyok's avatar
    Kayıt Tarihi: 17/Eylül/2009
    Erkek
    random hep 83 sayısını seçiyor,programı yeniden çalıştırsamda yine 83 seçiyor.ee ne alaka randomdu hani?
     
    #include <stdio.h>
    int main (void)
    {
    int deneme=0,random_sayi,girilen_sayi;
    random_sayi=rand()%100;
    while (1)
    {
    printf("Bir sayi giriniz:");
    scanf("%d",&girilen_sayi);
    deneme++;
    if(girilen_sayi==random_sayi)
    {printf("Tebrikler! %d denemede buldunuz.",deneme);break;}
    printf("Yanlis Tahmin!\n");
    if(girilen_sayi>random_sayi)
    {printf("Daha kucuk...\n");}
    if(girilen_sayi<random_sayi)
    {printf("Daha buyuk...\n");}
    }
    return 0;
    }
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kvasir
    kvasir's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek

    her denemedemi ? yoksa program 83 seçiyor, sen kapatıyorsun tekrar açtığında tekrar 83 seçiyor ?

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek

    random komutuna random seed vermezsen hep aynı sayıyı verir. değişken seed vermek için en iyi yöntem de sürekli değiştiği için zamanı kullanmak.

     

    time.h kütüphanesini ekleyip srand ( time(NULL) );  ile seed verirsen sorun çözülür:

     

    #include <stdio.h>
    #include <time.h>
    
    int main (void)
    {
    srand(time(NULL));
    int deneme=0,random_sayi,girilen_sayi;
    random_sayi=rand()%100;
    while (1)
    {
    printf("Bir sayi giriniz:");
    scanf("%d",&girilen_sayi);
    deneme++;
    if(girilen_sayi==random_sayi)
    {printf("Tebrikler! %d denemede buldunuz.",deneme);break;}
    printf("Yanlis Tahmin!\n");
    if(girilen_sayi>random_sayi)
    {printf("Daha kucuk...\n");}
    if(girilen_sayi<random_sayi)
    {printf("Daha buyuk...\n");}
    }
    return 0;
    }

    never say never...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    bilenyok
    bilenyok's avatar
    Kayıt Tarihi: 17/Eylül/2009
    Erkek

    smok3 bunu yazdı:
    -----------------------------

    random komutuna random seed vermezsen hep aynı sayıyı verir. değişken seed vermek için en iyi yöntem de sürekli değiştiği için zamanı kullanmak.

     

    time.h kütüphanesini ekleyip srand ( time(NULL) );  ile seed verirsen sorun çözülür:

     

    #include 
    #include 
    
    int main (void)
    {
    srand(time(NULL));
    int deneme=0,random_sayi,girilen_sayi;
    random_sayi=rand()%100;
    while (1)
    {
    printf("Bir sayi giriniz:");
    scanf("%d",&girilen_sayi);
    deneme++;
    if(girilen_sayi==random_sayi)
    {printf("Tebrikler! %d denemede buldunuz.",deneme);break;}
    printf("Yanlis Tahmin!\n");
    if(girilen_sayi>random_sayi)
    {printf("Daha kucuk...\n");}
    if(girilen_sayi
    


    -----------------------------

     

    eyvallah hocam..ancak çalışma mantığını tam anlayamadım,biraz daha yalın açıklarmısın?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek

    rand() fonksiyonu malesef kafasına göre rastgele bir değişken veremiyor. önce ona seed dediğimiz bir değer vermen gerek eğer vermezse default olarak sanırım 1 kabul ediyor. o yüzden hep aynı sayıyı döndürüyor. her seferinde farklı bir seed vermek için de en iyi yöntem seed olarak o anki sistem saatini vermek. çünkü zaman sürekli değişiyor. o yüzden program da bize farklı bir random sayı veriyor.


    never say never...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    bilenyok
    bilenyok's avatar
    Kayıt Tarihi: 17/Eylül/2009
    Erkek

    smok3 bunu yazdı:
    -----------------------------

    rand() fonksiyonu malesef kafasına göre rastgele bir değişken veremiyor. önce ona seed dediğimiz bir değer vermen gerek eğer vermezse default olarak sanırım 1 kabul ediyor. o yüzden hep aynı sayıyı döndürüyor. her seferinde farklı bir seed vermek için de en iyi yöntem seed olarak o anki sistem saatini vermek. çünkü zaman sürekli değişiyor. o yüzden program da bize farklı bir random sayı veriyor.


    -----------------------------

    anlaşıldı hocam,teşekkürler..

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    diğer dillerdeki random'un mantığı nedir acaba yeri gelmişken sorayım

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kafkafkaf
    kafkafkaf's avatar
    Kayıt Tarihi: 18/Ağustos/2007
    Erkek

    Daft bunu yazdı:
    -----------------------------

    diğer dillerdeki random'un mantığı nedir acaba yeri gelmişken sorayım


    -----------------------------

    diğer dillerde bios saatinden yararlanıyor


    http://emorcraft.blogspot.com.tr/
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MaviGozluDev
    MaviGozluDev's avatar
    Kayıt Tarihi: 05/Eylül/2005
    Erkek

    nan biz random la aralığı baya bayaa geniş tutup döküman yönetim sisteminin evrak numaralarını verdik bitirme projelerinde 1 tane bile aynı vermedi denemelerde :)


    .
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    kafkafkaf bunu yazdı:
    -----------------------------

    Daft bunu yazdı:
    -----------------------------

    diğer dillerdeki random'un mantığı nedir acaba yeri gelmişken sorayım


    -----------------------------

    diğer dillerde bios saatinden yararlanıyor


    -----------------------------

    ertesi gün aynı saatte veya

    sistem saatini ve tarihi gene aynı yapmak suretiyle aynı random sayıyı elde etme olasılığım nedir?

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    srand fonksiyonu zaten verilmiş,bana "rassallaştırmayı araştır" demek kalmış :)


    :)
Toplam Hit: 3566 Toplam Mesaj: 14