: random komutuna random seed vermezsen hep aynı sayıyı verir. değişken seed vermek için en iyi yntem de sürekli değiştiği için zamanı kullanmak. time. h kütüphanesini ekleyip srand ( time ); ile seed verirsen sorun çzülür: #include #include int main { srand(time ; int deneme=0, random_sayi, girilen_sayi; random_sayi=rand %100; while (1) { printf ; scanf ; deneme++; if printf ; if if(girilen_sayi eyvallah hocam.. ancak çalışma mantığını tam anlayamadım, biraz daha yalın açıklarmısın?

nan biz random la aralığı baya bayaa geniş tutup dküman ynetim sisteminin evrak numaralarını verdik bitirme projelerinde 1 tane bile aynı vermedi denemelerde :) .

: 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?

c# da bu sorunla karşılaşmıştım. 1 Random nesnesi oluşturup 1'den fazla çağırıldığında aynı sayıyı dndürüyordu. Her seferinde yeni instance oluşturarak kullandığımda sorun ortadan kalkmıştı. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

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 { int deneme=0, random_sayi, girilen_sayi; random_sayi=rand %100; while (1) { printf ; scanf ; deneme++; if printf ; if if } return 0; }

rand fonksiyonu malesef kafasına gre 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ı dndürüyor. her seferinde farklı bir seed vermek için de en iyi yntem 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...

: rand fonksiyonu malesef kafasına gre 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ı dndürüyor. her seferinde farklı bir seed vermek için de en iyi yntem 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..

: 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? aynı saatte olmaz herhalde. ama bios tarihi mantıklı geldi çünkü, ben bir program yaptığımda mesela saat, 11:22 de 11:23 olana kadar "23,56,88,54" gibi programı kapatıp açtığımda hep aynı diziyi veriyordu.

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

: 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/

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

: Daft bunu yazdı: 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? aynı saatte olmaz herhalde. ama bios tarihi mantıklı geldi çünkü, ben bir program yaptığımda mesela saat, 11:22 de 11:23 olana kadar "23,56,88,54" gibi programı kapatıp açtığımda hep aynı diziyi veriyordu. 1. sınıftaki matematikçi bios saati tarih ve farklı fonksiyonlar kullanarak sayı üretildiğini sylemişti, o zaman internetteki kumar sitelerinde bunu kullanarak aynı rassal sayıyı elde edebilirmiyiz demiştim, saliselerden yararlanan bir prog dilinin farklı bilgisayarlarda taklit edilmesinin teoride mümkün olduğunu ama pratikte işe yaramayacağını sylemişti şyleki eğer bilgisayarlar farklı ısınmışsa, daha farklı manyetik alanın içindeyse hatta yükseklik farkına gre bile daha sayamayacağımız sonsuz faktrün programın işleyişini birbirinden aksatıp farklı sonuçlar yaratacaktır... http://emorcraft.blogspot.com.tr/

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

random komutuna random seed vermezsen hep aynı sayıyı verir. değişken seed vermek için en iyi yntem de sürekli değiştiği için zamanı kullanmak. time. h kütüphanesini ekleyip srand ( time ); ile seed verirsen sorun çzülür: #include <stdio. h> #include <time. h> int main { srand(time ; int deneme=0, random_sayi, girilen_sayi; random_sayi=rand %100; while (1) { printf ; scanf ; deneme++; if printf ; if if } return 0; } never say never...