Rastgele Sayılar

Sözderastsal sayılar (pseudorandom numbers), öğeleri arasında kolay kolay ilişki kurulamayacak sayı dizilerine verilen genel isimdir.

Sözderastsal sayılar gerçek anlamda rastsal değildir, gerçek rastsal sayı dizilerinin bazı özelliklerini yaklaşık olarak taşır.

Sözderastsal sayıların üretilmesi zor değildir, standart kütüphanenin sunduğu rand ve srand ile kolayca bu tip sayılar oluşturulabilir. Bununla birlikte belirli aralıklarda, kayan nokta tipinde rastgele sayılar elde etmek vb. için yardımcı fonksiyonlar yazmanız gerekir. Bu gibi durumlar için SFML, sf::Randomizer isminde yardımcı bir sınıf sunar.


Tohumu Ayarlamak
Uygulamalarda rastgele sayı kullanmak isteyen herkes, uygulamanın her çalıştırıldığında değişik sayıların üretilmesini ister. SFML bunu uygulama başlangıcında otomatik olarak yapar, yani bu konuda endişelenmenize gerek yoktur.

Özel bir tohum kullanmak istenirse (bilinen bir diziyi tekrar oluşturmak için) SetSeed fonksiyonu kullanılabilir:
unsigned int Seed = 10;
sf::Randomizer::SetSeed(Seed);
O an kullanılan tohumuysa şu şekilde elde edebilirsiniz:
unsigned int Seed = sf::Randomizer::GetSeed();


Belirli Aralıklarda Rastgele Sayılar Üretmek
sf::Randomizer belirli aralıklarda rastgele sayı üretmek için iki fonksiyon sunar. Birincisi tam sayı üretir:
// 0 ile 100 arası rastgele tam sayı üretir
int Random = sf::Randomizer::Random(0, 100);
İkinci fonksiyonsa kayan nokta sayılar üretir:
// -1 ile 1 arası rastgele kayan nokta sayı üretir
float Random = sf::Randomizer::Random(-1.f, 1.f);
Bu basit fonksiyonlar rastgele sayılarla ilgili ihtiyaçlar için yeterli olacaktır. Eğer daha gelişmiş ihtiyaçlar varsa Boost.Random'a bakılabilir.

SFML'nin rastgele sayı üretimiyle ilgili sunduklarına aşağıdaki örnek üzerinde daha yakından bakabilirsiniz:



Bu eğitselle ilgili diğer örneklere sfml-gelistirme deposundan ulaşabilirsiniz. Ne demişler nerede rastgele sayı orada sayı tahmin oyunu.


Kaynak: System - Generating random numbers