Şimdi Ara

rand ?srand?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
5.863
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • rastgele sayı php de nasıl üretilir? rand fonksiyonu ve srand fonksiyonu nedir?



  • rand() fonksiyonunu iki şekilde kullanabilirsiniz.
    rand()
    rand(min,max) şeklinde yani verdiğiniz iki sayı arasında değer üretir.

    srand() belirli bir düzen içerisinde rastgele sayı üretmek istediğinizde kullanabilirsiniz.

    Kolay gelsin.
  • srand ((double)microtime()*1000000) ;
    $random = rand(0, "10000") ;


    Genel kullanım biçimidir. Açıklamaya gelince, srand() denilen fonksiyon sayıların yaklaşık ya da aynı gelmesini engeller gördüğün gibi genelde zaman fonksiyonlarıyla kullanılır.
    rand() ise belli sayılar arasında rastgele sayı üretir. Mesela üstte 0 ile 10000 arasında bir sayı üretir.

    Ayrıca mt_rand() ve mt_srand() fonksiyonları da mevcuttur. Bunlar da en iyi rasgele sayıyı üretmede kullanılıyor. Pek bir fark yok ama...
  • merhaba. php ile yeni yeni ilgileniyorum.
    random seçilen sayıların gösterilmesi için bi kod yazdım ama boş sayfa çıkıyor ne yaptıysam.
    echo bölümünde bi hata mı var acaba yada başka bi yerde mi yanlışlık var
    <?php
    $dizia = array(0,1,2,3,4,5,6,7,8,9);
    $sayia = count($dizia);
    $rasa = rand(0,$sayia);
    $a1 = $dizia[$rasa];

    $dizib = array(0,1,2,3,4,5,6,7,8,9);
    $sayib = count($dizib);
    $rasb = rand(0,$sayib);
    $b1 = $dizib[$rasb];

    $dizic = array(0,1,2,3,4,5,6,7,8,9);
    $sayic = count($dizic);
    $rasc = rand(0,$sayic);
    $c1 = $dizic[$rasc];

    function afaktoryel(){
    if ($a1=0) {$adeger=1;}
    elseif ($a1=1) {$adeger=1;}
    elseif ($a1=2) {$adeger=2;}
    elseif ($a1=3) {$adeger=3*2;}
    elseif ($a1=4) {$adeger=4*3*2;}
    elseif ($a1=5) {$adeger=5*4*3*2;}
    elseif ($a1=6) {$adeger=6*5*4*3*2;}
    elseif ($a1=7) {$adeger=7*6*5*4*3*2;}
    elseif ($a1=8) {$adeger=8*7*6*5*4*3*2;}
    elseif ($a1=9) {$adeger=9*8*7*6*5*4*3*2;}
    }
    function bfaktoryel(){
    if ($b1=0) {$bdeger=1;}
    elseif ($b1=1) {$bdeger=1;}
    elseif ($b1=2) {$bdeger=2;}
    elseif ($b1=3) {$bdeger=3*2;}
    elseif ($b1=4) {$bdeger=4*3*2;}
    elseif ($b1=5) {$bdeger=5*4*3*2;}
    elseif ($b1=6) {$bdeger=6*5*4*3*2;}
    elseif ($b1=7) {$bdeger=7*6*5*4*3*2;}
    elseif ($b1=8) {$bdeger=8*7*6*5*4*3*2;}
    elseif ($b1=9) {$bdeger=9*8*7*6*5*4*3*2;}
    }
    function cfaktoryel(){
    if ($c1=0) {$cdeger=1;}
    elseif ($c1=1) {$cdeger=1;}
    elseif ($c1=2) {$cdeger=2;}
    elseif ($c1=3) {$cdeger=3*2;}
    elseif ($c1=4) {$cdeger=4*3*2;}
    elseif ($c1=5) {$cdeger=5*4*3*2;}
    elseif ($c1=6) {$cdeger=6*5*4*3*2;}
    elseif ($c1=7) {$cdeger=7*6*5*4*3*2;}
    elseif ($c1=8) {$cdeger=8*7*6*5*4*3*2;}
    elseif ($c1=9) {$cdeger=9*8*7*6*5*4*3*2;}
    }
    afaktoryel();
    bfaktoryel();
    cfaktoryel();

    echo $adeger;
    echo $bdeger;
    echo $cdeger;

    kod böyle. ilgilenen olursa sevinirim.




  • Turkcesi ne bilmiyorum, ama srand fonksiyonundaki random number generator'larin seed edilmesi gerekiyor. seed Pseudorandom Number Generator (PRNG)'nin baslangis hali olacaktir.

    php tahminime gore C'ye benzer bir sekilde rakam uretiyor. C'de rand() derseniz program her calistiginda ayni rakamlari uretir.

    Ama time her seferinde farkli olacagi icin, arkadaslarin da dedigi gibi timer ile seed ederseniz rastgele sayi elde etmis olursunuz. Kumar makinesi yapiyorsaniz yada kriptografi icin kullanacaksaniz bu seed yetersiz olabilir...

    Alcebra konularinda uzman olanlar daha kapsamli anlatabilir :)

    PS: Linux'te hardware random number generator var, bilgisayarin isisi, klaviye ve mouse frekanslari, vs, gibi bilgisayardaki bazi faktorleri rastgele sayilar uretmek icin kullaniyorlar.

    Ekleme: yeni fark ettim, bu konu 2 sene oncesinin konusu :)



    < Bu mesaj bu kişi tarafından değiştirildi Ali_7 -- 1 Mayıs 2007; 18:53:47 >
  • konunun bu kadar zor oldugunu bilmiyordum. cevap yazdıgın için teşekkürler ama aslında benim öğrenmek istediğim bunlar değildi.tekrar yazıyorum
    echo komutu verdiğim halde ekranda herhangi bir cıktı görünmüyor. sayfa bembeyaz yani. komutta ya da öncesinde bir yanlışlık mı yaptım acaba? öyleyse nerde ? cevaplayan olursa sevinirim. teşekkürler.
  • merhabalar öncelikle konunun üzerinden epey zaman geçmiş ancak ben daha yeni yeni başladım php öğrenmeye rand() fonksiyonu hakkında bi arama yaparken kendimi burda buldum..kotrhaci aşağıda yazmış olduğun kodu inceledim..kodu kopyalayıp biraz deneme yaptım..öncelikle kodundaki rand() fonksiyonu tıkır tıkır çalışıyor..yalnız php de bir fonksiyon tanımladığımız da o fonksiyonun içinde fonksiyon dışında tanımlanmış bir değişkeni çalıştırmak için o değişkeni global hale getirmemiz gerekir...bu koddaki $a1,$b1 ve $c1 değişkenleri fonksiyon dışında tanımlandıkları için bunları fonksiyon içinde global hale getirmeliyiz...ancak ben bu düzeltmeleri yapmama rağmen faktoriyel işlemleri bir türlü çalışmıyor...
    $adeger,$bdeger ve $cdeger değişkenleri her seferin de 1 sayısını döndürüyor nedenini anlamadım... kodu aşağıdaki gibi değiştirdim...çözümü ben bulamadım ama cevabı çok merak ediyorum tekrar inceleyip bi cevap yazarsanız sevinirim..

    NOT:rand() fonk. çalıştığını koda yeni eklediğim echo ifadelerinden anladım...

    <?php
    $dizia = array(0,1,2,3,4,5,6,7,8,9);

    $sayia = count($dizia); //$dizia dizsinin öğelerini saydırıp sonucu $sayia depoluyorruz

    $rasa = rand(0,$sayia-1);// 0 ile 10 arasında bir sayı üretecek
    echo $sayia."-".$rasa."<br>";
    $a1 = $dizia[$rasa]; //üretilen rastgele sayıyı $dizia dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $a1 de depola..
    echo "a1:".$a1."<br><br>";

    $dizib = array(0,1,2,3,4,5,6,7,8,9);

    $sayib = count($dizib);//$dizib dizsinin öğelerini saydırıp sonucu $sayib depoluyorruz

    $rasb = rand(0,$sayib-1); //0 ile 10 arasında bir sayı üretecek
    echo $sayib."-".$rasb."<br>";
    $b1 = $dizib[$rasb]; //üretilen rastgele sayıyı $dizib dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $b1 de depola..
    echo "b1:".$b1."<br><br>";

    $dizic = array(0,1,2,3,4,5,6,7,8,9);

    $sayic = count($dizic); //$dizic dizsinin öğelerini saydırıp sonucu $sayic depoluyorruz

    $rasc = rand(0,$sayic-1); //0 ile 10 arasında bir sayı üretecek
    echo $sayic."-".$rasc."<br>";
    $c1 = $dizic[$rasc]; //üretilen rastgele sayıyı $dizic dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $c1 de depola..
    echo "c1:".$c1."<br><br>";

    function afaktoryel(){

    global $a1;

    if ($a1=1){$adeger=1;}
    elseif ($a1=2) {$adeger=2;}
    elseif ($a1=3) {$adeger=3*2;}
    elseif ($a1=4) {$adeger=4*3*2;}
    elseif ($a1=5) {$adeger=5*4*3*2;}
    elseif ($a1=6) {$adeger=6*5*4*3*2;}
    elseif ($a1=7) {$adeger=7*6*5*4*3*2;}
    elseif ($a1=8) {$adeger=8*7*6*5*4*3*2;}
    elseif ($a1=9) {$adeger=9*8*7*6*5*4*3*2;}
    else{$adeger=1;}

    echo $adeger."<br>";
    }
    function bfaktoryel(){

    global $b1;

    if ($b1=1) {$bdeger=1;}
    elseif ($b1=1) {$bdeger=1;}
    elseif ($b1=2) {$bdeger=2;}
    elseif ($b1=3) {$bdeger=3*2;}
    elseif ($b1=4) {$bdeger=4*3*2;}
    elseif ($b1=5) {$bdeger=5*4*3*2;}
    elseif ($b1=6) {$bdeger=6*5*4*3*2;}
    elseif ($b1=7) {$bdeger=7*6*5*4*3*2;}
    elseif ($b1=8) {$bdeger=8*7*6*5*4*3*2;}
    elseif ($b1=9) {$bdeger=9*8*7*6*5*4*3*2;}
    else{$bdeger=1;}

    echo $bdeger."<br>";
    }
    function cfaktoryel(){

    global $c1;

    if ($c1=1) {$cdeger=1;}
    elseif ($c1=1) {$cdeger=1;}
    elseif ($c1=2) {$cdeger=2;}
    elseif ($c1=3) {$cdeger=3*2;}
    elseif ($c1=4) {$cdeger=4*3*2;}
    elseif ($c1=5) {$cdeger=5*4*3*2;}
    elseif ($c1=6) {$cdeger=6*5*4*3*2;}
    elseif ($c1=7) {$cdeger=7*6*5*4*3*2;}
    elseif ($c1=8) {$cdeger=8*7*6*5*4*3*2;}
    elseif ($c1=9) {$cdeger=9*8*7*6*5*4*3*2;}
    else{$cdeger=1;}

    echo $cdeger."<br>";
    }
    afaktoryel();
    bfaktoryel();
    cfaktoryel();
    ?>




  • Yapay Zeka’dan İlgili Konular
    Notepad++ Replace Yapma
    7 yıl önce açıldı
    Daha Fazla Göster
  • Arkadaşlar aynı kodu if,elseif ifadeleriyle değilde switch ifadesiyle yaptım kod çalıştı ancak çok uzun bir kod haline geldi..bunun hale neden if koşuluyla çalışmadığını anlamış değilim..... switch komutlu ifade aşağıda.....if koşullu ifadenin neden çalışmadığını bilen varsa lütfen cevap yazsın çok merak ediyorum.....

    <?php
    $dizia = array(0,1,2,3,4,5,6,7,8,9);
    $sayia = count($dizia); //$dizia dizsinin öğelerini saydırıp sonucu $sayia depoluyorruz
    $rasa = rand(0,$sayia-1);// 0 ile 10 arasında bir sayı üretecek
    echo $sayia."-".$rasa."<br>";
    $a1 = $dizia[$rasa]; //üretilen rastgele sayıyı $dizia dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $a1 de depola..
    echo "a1:".$a1."<br><br>";

    $dizib = array(0,1,2,3,4,5,6,7,8,9);
    $sayib = count($dizib);//$dizib dizsinin öğelerini saydırıp sonucu $sayib depoluyorruz
    $rasb = rand(0,$sayib-1); //0 ile 10 arasında bir sayı üretecek
    echo $sayib."-".$rasb."<br>";
    $b1 = $dizib[$rasb]; //üretilen rastgele sayıyı $dizib dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $b1 de depola..
    echo "b1:".$b1."<br><br>";

    $dizic = array(0,1,2,3,4,5,6,7,8,9);
    $sayic = count($dizic); //$dizic dizsinin öğelerini saydırıp sonucu $sayic depoluyorruz
    $rasc = rand(0,$sayic-1); //0 ile 10 arasında bir sayı üretecek
    echo $sayic."-".$rasc."<br>";
    $c1 = $dizic[$rasc]; //üretilen rastgele sayıyı $dizic dizisinin indis alanına ekle ve ona karşılık gelecek elemanı $c1 de depola..
    echo "c1:".$c1."<br><br>";

    function afaktoryel(){

    global $a1;

    switch($a1){

    case 0:
    $adeger="1";
    echo $adeger."<br>";
    break;

    case 1:
    $adeger="1";
    echo $adeger."<br>";
    break;

    case 2:
    $adeger=2;
    echo $adeger."<br>";
    break;

    case 3:
    $adeger=3*2;
    echo $adeger."<br>";
    break;

    case 4:
    $adeger=4*3*2;
    echo $adeger."<br>";
    break;

    case 5:
    $adeger=5*4*3*2;
    echo $adeger."<br>";
    break;

    case 6:
    $adeger=6*5*4*3*2;
    echo $adeger."<br>";
    break;

    case 7:
    $adeger=7*6*5*4*3*2;
    echo $adeger."<br>";
    break;

    case 8:
    $adeger=8*7*6*5*4*3*2;
    echo $adeger."<br>";
    break;

    case 9:
    $adeger=9*8*7*6*5*4*3*2;
    echo $adeger."<br>";
    break;
    }
    }
    function bfaktoryel(){

    global $b1;

    switch($b1){

    case 0:
    $bdeger="1";
    echo $bdeger."<br>";
    break;

    case 1:
    $bdeger="1";
    echo $bdeger."<br>";
    break;

    case 2:
    $bdeger=2;
    echo $bdeger."<br>";
    break;

    case 3:
    $bdeger=3*2;
    echo $bdeger."<br>";
    break;

    case 4:
    $bdeger=4*3*2;
    echo $bdeger."<br>";
    break;

    case 5:
    $bdeger=5*4*3*2;
    echo $bdeger."<br>";
    break;

    case 6:
    $bdeger=6*5*4*3*2;
    echo $bdeger."<br>";
    break;

    case 7:
    $bdeger=7*6*5*4*3*2;
    echo $bdeger."<br>";
    break;

    case 8:
    $bdeger=8*7*6*5*4*3*2;
    echo $bdeger."<br>";
    break;

    case 9:
    $bdeger=9*8*7*6*5*4*3*2;
    echo $bdeger."<br>";
    break;
    }
    }
    function cfaktoryel(){

    global $c1;

    switch($c1){

    case 0:
    $cdeger="1";
    echo $cdeger;
    break;

    case 1:
    $cdeger="1";
    echo $cdeger;
    break;

    case 2:
    $cdeger=2;
    echo $cdeger;
    break;

    case 3:
    $cdeger=3*2;
    echo $cdeger;
    break;

    case 4:
    $cdeger=4*3*2;
    echo $cdeger;
    break;

    case 5:
    $cdeger=5*4*3*2;
    echo $cdeger;
    break;

    case 6:
    $cdeger=6*5*4*3*2;
    echo $cdeger;
    break;

    case 7:
    $cdeger=7*6*5*4*3*2;
    echo $cdeger;
    break;

    case 8:
    $cdeger=8*7*6*5*4*3*2;
    echo $cdeger;
    break;

    case 9:
    $cdeger=9*8*7*6*5*4*3*2;
    echo $cdeger;
    break;
    }
    }
    afaktoryel();
    bfaktoryel();
    cfaktoryel();
    ?>




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.