• 17-02-2014, 11:47:20
    #1
    arkadaşlar söyle olan kod

    rand(0,99999999); bu kod 8 basamaklı rastgele sayı uretmesi gerekiyor değilmi

    ancak bazen sekız bazen 7 rakam olusturuyor bunun sebebı sizce nedir 0 olmasından mı acaba

    sorun cozuld
  • 17-02-2014, 13:29:07
    #2
    $digits = 8;
    echo rand(pow(10, $digits-1), pow(10, $digits)-1);
    çıktısı 8 basamaklı rastgele sayılardan oluşacaktır.
    Açıklaması: pow fonksiyonu pow(10,2) = 10^2 = 100 gibi ya da
    pow(3,4)=3^4=81 gibi pow üstel değerini veriyor iki değişkenin.
    rand(pow(10, $digits-1), pow(10, $digits)-1);
    pow(10,7)=10^7=10.000.000 yani ilk 8 basamaklı sayı(10^7 sayı sonunda 7 sıfır olacak demektir.)
    pow(10,8)-1=100.000.000-1=99.999.999
    rand(10.000.000,99.999.999) bu şekilde de yapabilirsin kısacası.
  • 18-02-2014, 01:15:26
    #3
    Arkadaş örneği vermiş ek olarak sizin kullandığınız şekilde her seferinde 8 basamaklı sonuc almak için
    rand(10000000,99999999);
    şeklinde kullanmalısınız.

    sizin kullandığınız şekilde 0 ile 99999999 arasında rasgele bir sayı üreteceği için bu 1, 123, 1212453 veya 99999999 olabilir.

    verdiğim örnekte ise 10000000 ile 99999999 arasında rasgele bir sayı üretir. üretilen tüm sayılar 8 basamaklı olur.
  • 21-02-2014, 12:15:29
    #4
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    $digits = 8;
    echo rand(pow(10, $digits-1), pow(10, $digits)-1);
    çıktısı 8 basamaklı rastgele sayılardan oluşacaktır.
    Açıklaması: pow fonksiyonu pow(10,2) = 10^2 = 100 gibi ya da
    pow(3,4)=3^4=81 gibi pow üstel değerini veriyor iki değişkenin.
    rand(pow(10, $digits-1), pow(10, $digits)-1);
    pow(10,7)=10^7=10.000.000 yani ilk 8 basamaklı sayı(10^7 sayı sonunda 7 sıfır olacak demektir.)
    pow(10,8)-1=100.000.000-1=99.999.999
    rand(10.000.000,99.999.999) bu şekilde de yapabilirsin kısacası.

    Teşekkürler yanıtınız için

    LaCReMeL adlı üyeden alıntı: mesajı görüntüle
    Arkadaş örneği vermiş ek olarak sizin kullandığınız şekilde her seferinde 8 basamaklı sonuc almak için
    rand(10000000,99999999);
    şeklinde kullanmalısınız.

    sizin kullandığınız şekilde 0 ile 99999999 arasında rasgele bir sayı üreteceği için bu 1, 123, 1212453 veya 99999999 olabilir.

    verdiğim örnekte ise 10000000 ile 99999999 arasında rasgele bir sayı üretir. üretilen tüm sayılar 8 basamaklı olur.


    aynı yöntemi kullanıp bu sekılde sorun cozuluyorsabu kodu kullanacagım teşekkürler + r10