mt_rand() kullanımı

mt_rand() fonksiyonu olabilecek en basit anlatımla, rastgele rakam üretecidir. Sizin verdiğiniz değerler de dahil olmak üzere rakam üretir. Her çağırıldığında farklı bir rakam getirir. Bunu yaparken Mersenne Twister algoritmasını kullanır. Nedir derseniz aşağıda vereceğim Wikipedia sayfalarından okuyabilirsiniz.

Kod

Kullanımı oldukça basittir. Sadece fonksiyonu mt_rand() olarak çağırmak bile size rastgele sayı üretir. Bunu sıfır ile olabilecek en büyük sayı mt_getrandmax() fonksiyonu çıktısıyla sınırlar. Aşağıdaki kod gösterim alanında detayları aktardım;

Örnek olarak mt_rand(10,100) verdiğimizde karşımıza 10 ve ondan büyük, yüz ve yüzden küçük sayılar arasından rastgele bir sayı üretecektir. Yani 10 dan yüze kadar olan sayılardan birini getirecektir. Şöyle ki;

Şimdi tanımlamayı yaptığımıza göre gelelim bunu güzel bir şekilde nasıl kullanacağımıza.

Kullanımı

Ben MySQL üzerinden veri çağırırken RAND() ve bu tarz kullanılabilir rastgele kayıt çağırma yöntemlerini pek başarılı bulmuyorum. “Sen misin bu alemin kralı” derseniz ben de “Her yiğidin bi yoğurt yiyişi vardır” derim. Siz de kullanabilir ya da kullanmayabilirsiniz.

mt_rand() ile ürettiğim rastgele sayıyı MySQL dizesinde bulunan LIMIT fonksiyonuna ekleyerek her sayfa yenilenmesinde rastgele içerik gelmesini sağlıyorum. Şöyle ki;

Böylelikle bana mt_rand 0 dan 100 e kadar rastele bir sayı getiriyor ve LIMIT fonksiyonu sadece belirtilen alandan 10 adet içerik gösteriyor.

Hız konusunda ne alem, içeriklerin binlerce olduğu yerlerde nasıl derseniz, şu an 14 bin listelik bir sistemden oldukça başarılı ve hızlı getirme yapabiliyorum.

Selametle

PHP: mt_rand - Manual

PHP: mt_getrandmax - Manual

Mersenne Twister - Wikipedia

  • Gürkan BİLGİ&

    normal rand fonkisyonu ile arasında her hangi bir fark var mı ?