PHP İle Rastgele Sayı Üretme ve Dağılım Simülasyonları Yapma

PHP İle Rastgele Sayı Üretme ve Dağılım Simülasyonları Yapma

PHP ile rastgele sayı üretme ve dağılım simülasyonları yapmayı öğrenin! Bu eğitim yazısı, PHP kullanarak nasıl rastgele sayılar üretebileceğiniz, herhangi bir dağılımı simüle edebileceğiniz ve sonuçlarınızı grafiklerle görselleştirebileceğiniz adımları açıklar

PHP İle Rastgele Sayı Üretme ve Dağılım Simülasyonları Yapma

Merhaba! Bu makalede PHP kullanarak rastgele sayı üretme işlemi ve bu sayıların çeşitli dağılım simülasyonları hakkında bilgi sahibi olacaksınız. Rastgele sayı üretme işlemi, web geliştirme ve veri analizi gibi birçok alanda kullanılır. Bu işlemle sayılar oluşturuldukça, bunların nasıl dağıldığını ve simülasyonlarını nasıl yapabileceğimizi öğrenmeliyiz.

PHP'de rastgele sayı üretmek için birkaç yöntem bulunmaktadır. Bu yöntemlerin nasıl çalıştığına dair bilgi sahibi olmalısınız. Ayrıca, uniform dağılım simülasyonu yapmak için de rastgele sayı üretme yöntemlerini kullanabilirsiniz. Bu sayede, dağılım simülasyonlarını yaparken kullanılacak verileri oluşturabilirsiniz. Uniform dağılım simülasyonu yapmak için "Doğrusal Kongruans" yöntemini kullanabilirsiniz. Bu yöntemin parametrelerinin seçimi, simülasyon sonuçlarını etkileyecektir ve uygunluk testleri yaparak parametrelerin ayarlanması gerekmektedir. Normal dağılım simülasyonu yaparken ise Box-Muller dönüşüm yöntemini kullanabilirsiniz.

Ayrıca, diğer dağılım simülasyonlarını yapmak için de PHP'de kullanabileceğiniz yöntemler vardır. Triangular, Poisson, Exponential ve Weibull dağılım simülasyonlarını oluşturmak için bu yöntemleri kullanabilirsiniz. Bu yöntemlerin de nasıl çalıştığını ve simülasyonların nasıl yapılacağını öğrenmelisiniz.


Rastgele Sayı Üretme

Web uygulamaları geliştirirken, rastgele sayı üretme işlemi oldukça yaygın bir ihtiyaçtır. PHP bu gibi ihtiyaçlara cevap verebilecek niteliklere sahip bir programlama dilidir. PHP'de rastgele sayı üretmek için iki yöntem kullanılabilir:

  • rand(): Bu fonksiyon, belirtilen iki sayı arasında, rastgele bir sayı üretir.
  • mt_rand(): Bu fonksiyon, rand() fonksiyonuna benzer şekilde çalışır. Ancak rand() fonksiyonuna göre çok daha hızlı ve daha iyi rastgele sayılar üretir.

Rastgele bir sayı üretmek için, rand() fonksiyonunu kullanarak aşağıdaki gibi bir örnek oluşturabilirsiniz:

Kod Parçası: $random_number = rand(1, 10);
Açıklama: Bu kod parçası, 1 ile 10 arasında rastgele bir sayı üretir ve $random_number değişkenine atar.

Bu örnek, rand() fonksiyonunu kullanarak rastgele bir sayı üretmeyi göstermiştir. mt_rand() fonksiyonu da benzer şekilde kullanılabilir. Bunun yanı sıra, random_int() fonksiyonu da rastgele sayı üretmek için kullanılabilir. Ancak, random_int() fonksiyonu yalnızca PHP 7'den sonraki sürümlerde kullanılabilir.


Uniform Dağılım Simülasyonu

Uniform dağılım simülasyonu, minimum ve maksimum değerleri verilen aralıkta eşit olasılıkla gerçekleşen bir olayı taklit eder. Bu dağılım simülasyonunu yapmak için önce rastgele sayı üretme yöntemlerini kullanmanız gerekir.

PHP'de rastgele sayı üretmek için, rand() veya mt_rand() fonksiyonlarını kullanabilirsiniz. Bu fonksiyonlar bir aralığı tanımlayıp, o aralıkta rastgele sayı üretirler.

rand() Fonksiyonu mt_rand() Fonksiyonu
$random_number = rand($min, $max); $random_number = mt_rand($min, $max);

Bu fonksiyonlar, uniform dağılım simülasyonu yapmak için yeterli değildir. Bunun yerine doğrusal kongruans yöntemini kullanmanız gerekir. Bu yöntemde, belirli bir formül kullanarak, önceki rastgele sayıya bağlı olarak bir sonraki sayı üretilir. Bu şekilde oluşturulan bir dizi sayı, uniform dağılım simülasyonu yapmak için kullanılabilir.

Doğrusal kongruans yöntemi, aşağıdaki formülle tanımlanır:

Xn+1 = (aXn + c) mod m

Bu formülde:

  • Xn: n. rastgele sayı
  • a: çarpma sabiti
  • c: arttırma sabiti
  • m: modül

Bu parametrelerin seçimi, simülasyon sonuçlarına etki eder. Bu nedenle, uygunluk testleri yapmak ve parametreleri buna göre ayarlamak önemlidir.


Doğrusal Kongruans Yöntemi

Doğrusal Kongruans yöntemi, rastgele sayı üretmek için kullanılabilecek en basit yöntemlerden biridir. Bu yöntem, bir sonraki rastgele sayının üretilmesinde önceki sayıların belirli bir formülle çarpılması ve mod alınmasıyla elde edilir.

Bu yöntemin kullanımı için öncelikle başlangıç değerlerinin belirlenmesi gerekmektedir. Bu değerler, sabit sayılar olan a, c ve m ile belirlenir. Daha sonra, başlangıç sayısı olarak seçilen x değeri ile bu formül kullanılarak bir sonraki rastgele sayı üretilir:

xn+1 = (a * xn + c) mod m

Bu formül ile birlikte belirlenen a, c ve m sabitleri, üretilecek rastgele sayıların özelliklerini belirlemektedir. Örneğin, a sayısı büyükse ve c sayısı küçükse, üretilen rastgele sayılar arasındaki fark büyük olacaktır. Ayrıca, m değeri de büyük olursa, rastgele sayıların özgünlüğü artacaktır.

Uniform dağılım simülasyonunu yapmak için, bu yöntemi kullanarak bir dizi rastgele sayı elde edilir. Bu sayılar, 0 ve 1 arasında uniform olarak dağıtılmış sayılar olarak kullanılır. Bu yöntemle elde edilen rastgele sayılar, uniform bir dağılım gösterir ve bu sayılar kullanılarak çeşitli simülasyonlar gerçekleştirilebilir.


Parametrelerin Seçilmesi

Doğrusal Kongruans yöntemiyle rastgele sayı üretmek için parametrelerin doğru bir şekilde seçilmesi oldukça önemlidir. Aksi takdirde, üretilen sayıların dağılımı istenilen sonuçları veremez.

İlk olarak, çoğulculuk parametresi olan m değeri seçilmelidir. Bu parametre, 0'dan büyük ve modüler aritmetik olarak seçilen Küçük m değerinden küçük olmalıdır. Bu sayede, en yüksek çoğulculuk sağlanmış olur.

Sonrasında a ve c değerleri seçilir. a ve m arasındaki bölenin bir çarpanı olarak seçilebilir. c değeri ise genellikle 0 olarak seçilir. Bu seçimlerin doğru bir şekilde yapılması, rastgele sayı üretme işlemi sırasında istenilen sonuçların elde edilmesini sağlar.

Seçilen parametrelerin doğru bir şekilde uygunluk testlerine tabi tutulması da oldukça önemlidir. Bu testler, üretilen rastgele sayıların belirli bir dağılımı takip edip etmediğini, korelasyon olup olmadığını ve diğer istatistiksel özellikleri kontrol etmek için yapılır. Uygunluk testlerinden geçmeyen parametreler, tekrar seçilmelidir.

Doğru parametre seçimi, rastgele sayıların dengeli bir şekilde üretilmesini ve simülasyon sonuçlarının gerçek hayat verilerini tam olarak yansıtmasını sağlar. Doğrusal Kongruans yöntemi, farklı parametre seçimleri ile farklı sonuçlar verebilir. Bu nedenle, parametre seçimi için dikkatli bir çalışma yapılması, simülasyon sonuçlarının doğruluğu açısından oldukça önemlidir.


Uygunluk Testleri

Rastgele sayı üretiminde, kullanılan yöntemlerin gerçekçiliğini belirlemek için uygunluk testleri uygulanır. Bu testler, üretilen sayıların belirli bir dağılıma uygun olduğunu doğrular. Rastgele sayı üreten herhangi bir kodda, doğru parametrelerin seçimi kadar uygunluk testlerinin de doğru bir şekilde uygulanması önemlidir.

Uygunluk testleri, parametreleri ayarlamak için kullanılır. Bir uygunluk testi sonucunda elde edilen istatistiksel sonuçlar, parametre ayarlamalarında kullanılır. Testler, çeşitli dağılım türlerine ve istatistiksel değerlere dayanır.

En yaygın kullanılan uygunluk testleri arasında K-S testi (Kolmogorov-Smirnov testi), chi-kare testi (Pearson testi), Anderson-Darling testi, Shapiro-Wilk testi ve Jarque-Bera testi gibi testler bulunur.

K-S testi, uygunluk testleri arasında en yaygın olarak kullanılan testtir. Bu test, üretilen veri setinin bir dağılım fonksiyonu olduğunu doğrulayabilir. Chi-kare testi, gözlemlenen ve beklenen frekanslar arasındaki ilişkiyi değerlendirmek için kullanılır.

Anderson-Darling testi de K-S testine benzerdir, ancak daha hassas bir sonuç verir. Shapiro-Wilk testi, veri setinin normal dağılıma uygunluğunu test etmek için kullanılan bir testtir. Jarque-Bera testi ise normal dağılımın aksine çarpıklık ve basıklığın bir testidir.

Uygunluk testleri, parametrelerin doğru ayarlanmasını sağlar. Bu sayede, rastgele sayı üretiminde elde edilen sonuçların gerçeklikle uyumlu olduğundan emin olabilirsiniz.


Box-Muller Dönüşümü

Normal dağılımın (Gaussian dağılım) simülasyonu yapmak için kullanılan yöntemlerden biri de Box-Muller dönüşüm yöntemidir. Bu yöntem, iki bağımsız rastgele sayı üreterek normal dağılımı taklit eder. Yani, bu yöntem ile rastgele sayı üretildiğinde, elde edilen değerler normal dağılıma yakın bir dağılıma sahip olacaktır.

Box-Muller dönüşüm yöntemi, üç adımdan oluşur:

  • İki bağımsız rastgele sayı (uniform dağılım) üretme
  • Rastgele sayıları, normal dağılıma dönüştürme
  • Elde edilen iki normal dağılımı toplama ya da çıkarma işlemi ile istenilen dağılımı elde etme

Box-Muller dönüşümünün formülü şu şekildedir:

iRiYi
10.1512-0.7868
20.21671.2334
30.9473-1.6973
40.64640.6847

Burada, i (i=1,2,...n) rastgele sayıları ifade ederken, Ri bağımsız olarak uniform dağılımdan elde edilmiş rastgele sayıdır. Yi ise, normal dağılıma dönüştürülen rastgele sayıdır. Formüle göre, iki bağımsız uniform rastgele sayı üretildiğinde, Yi değerleri normal dağılıma yakın bir şekilde dağıtılmaktadır.

Box-Muller dönüşümü ile normal dağılım simülasyonu yapmak, özellikle finansal verilerin modellenmesi, risk değerlendirmesi gibi işlemlerde sıklıkla kullanılan bir yöntemdir. Ancak, bu yöntem de diğer rastgele sayı üretme yöntemleri gibi, uygunluk testlerine ve parametre optimizasyonuna ihtiyaç duyabilir.


Diğer Dağılım Simülasyonları

Uniform dağılım simülasyonundan sonra, diğer popüler dağılım simülasyonları da PHP ile gerçekleştirilebilir. Triangular dağılımı, Poisson dağılımı, Exponential dağılımı ve Weibull dağılımı simülasyonları yapmak için de rastgele sayı üreteçleri kullanılabilir. Bu dağılımların her biri farklı amaçlar için kullanılabilir ve simülasyonları yapmak oldukça basittir.

Triangular dağılımı, belirli bir aralıktaki rasgele sayıları kullanır ve sıklık dağılımı üçgen şeklinde oluşturulur. Bu dağılımı simüle etmek için, önce uniform dağılım simülasyonu yapılır ve ardından bu simülasyon sonucu kullanılır. Poisson dağılımı, olayların zaman aralıklarını simüle etmek için kullanılır ve bu dağılımı simüle etmek için, Poisson rastgele değişkeni kullanılır. Exponential dağılım, süreçlerin tamamlanma sürelerini simüle etmek için kullanılır ve bu dağılımı simüle etmek için, rastgele sayıların negatif logaritması kullanılır. Son olarak, Weibull dağılımı özellikle sağ öğelerin başarısızlık süresi dağılımını simüle etmek için kullanılır. Bu dağılım için, Weibull rastgele değişkeni kullanılır.

Yukarıda belirtilen dağılım simülasyonları, belirli bir ihtiyacı karşılamak için tasarlanmıştır ve bu nedenle simülasyonlar yapmak oldukça kolaydır. Ancak, her bir dağılımın simülasyonunda kullanılan rastgele sayı üreticilerinin parametreleri farklıdır. Bu nedenle, her bir dağılıma uygun tasarlanmış uygunluk testleri yapmak önemlidir. Bu testler, en uygun simülasyon sonuçlarını üretmek için kullanılan rastgele sayı üreteçleri için en uygun parametreleri belirlemenize yardımcı olacaktır.


Triangular Dağılımı

Triangular dağılımı, belirli bir değerin olası bir aralıkta rastgele olarak seçilmesini gerektiren durumlarda sıklıkla kullanılan bir olasılık dağılımıdır. Bu dağılım, minimum, maksimum ve mod değerlerini kullanarak oluşturulur.

Triangular dağılımının rastgele sayı üretme işlemi yapmak için birkaç farklı yöntemi vardır. Bunlardan biri, uniform dağılımı kullanarak rastgele bir sayı seçmek ve bu sayının minimum ve maksimum değerler arasındaki konumuna göre mod değerini hesaplamaktır. Bu hesaplama işlemi, aşağıdaki formül kullanılarak yapılır:

Formül
Mod hesaplama (maximum - minimum) * (mod_position - min_position) / (max_position - min_position) + minimum

Bu formül, modun minimum ve maksimum değerler arasındaki konumuna ve minimum ve maksimum değerlerin arasındaki konumunun modun konumuna göre oranını kullanır. Bu oran, modun minimum ve maksimum değerler arasındaki ortalama konumunu hesaplamak için kullanılır ve sonuç olarak mod değeri hesaplanır.

Bir diğer yöntem ise, triangle dağılımını doğrudan kullanmaktır. Bu yöntem, aşağıdaki formül kullanılarak yapılır:

Formül
Triangle dağılımı minimum + ((maximum - minimum) * SQRT(random1 * random2))

Bu formül, rastgele iki sayı seçer ve bu sayıların kareleri çarpımını oluşturur. Sonra bu çarpım değeri, minimum ve maksimum değerler arasındaki konuma göre ölçeklenir ve minimum değere eklenir.

Triangular dağılım simülasyonları yapmak için her iki yöntem de kullanılabilir ve simülasyon sonuçları doğru şekilde elde edilebilir.