C++ Random Sayı Üretme De Sayilardan Bazilatini Engelleme

Rastgele Sayı Üretmede Belirli Sayıları Engelleme

Rastgele sayı üretme, bilgisayar biliminde yaygın olarak kullanılan bir tekniktir. Ancak, belirli durumlarda, belirli sayıların üretilmesini engellemek gerekebilir. Bu makale, C++’ta rastgele sayı üretme işleminde belirli sayıları engelleme tekniklerini inceleyecektir.

Standart Kütüphane Yöntemleri

C++ standart kütüphanesi, rastgele sayı üretmek için <random> başlık dosyasını sağlar. Bu başlık dosyası, belirli sayıları engellemek için doğrudan bir yöntem sunmaz. Ancak, bu sorunu çözmek için dolaylı yollar kullanılabilir:

1. Yeniden Üretme:

Bu yöntem, istenmeyen sayı üretildiğinde rastgele sayı üretecinin yeniden başlatılmasını içerir. Örneğin:

“`cpp

include

int main() {
std::random_device rd;
std::mt19937 gen(rd());

while (true) {
int num = gen();
if (num != istenmeyen_sayı) {
// İstenmeyen sayı değilse, kullan
break;
}
// İstenmeyen sayıysa, yeniden başlat
gen.seed(rd());
}

return 0;
}
“`

2. Filtreleme:

Bu yöntem, istenmeyen sayı üretildiğinde onu atlamayı içerir. Örneğin:

“`cpp

include

include

int main() {
std::random_device rd;
std::mt19937 gen(rd());

std::vector sayılar;

while (sayılar.size() < 10) {
int num = gen();
if (num != istenmeyen_sayı) {
sayılar.push_back(num);
}
}

return 0;
}
“`

Üçüncü Taraf Kütüphaneleri

C++ standart kütüphanesi dışında, belirli sayıları engellemeyi kolaylaştıran üçüncü taraf kütüphaneler de mevcuttur.

1. Boost.Random:

Boost.Random kütüphanesi, boost::random::discrete_distribution sınıfını sağlar. Bu sınıf, belirli sayıları ağırlıklandırarak veya hariç tutarak rastgele sayı üretmeyi destekler.

2. Random++:

Random++ kütüphanesi, randompp::uniform_int_distribution sınıfını sağlar. Bu sınıf, belirli sayıları aralıktan hariç tutmayı destekler.

Örnek Kullanım

Aşağıdaki örnek, Boost.Random kütüphanesini kullanarak belirli bir sayıyı rastgele sayı üretiminde engellemektedir:

“`cpp

include

int main() {
boost::random::discrete_distribution<> dist(1, 10);
dist.exclude(5);

for (int i = 0; i < 10; i++) {
int num = dist();
std::cout << num << ” “;
}

return 0;
}
“`

Bu kod, 1 ile 10 arasındaki sayıları rastgele üretir ancak 5 sayısını hariç tutar.

Sonuç

C++’ta rastgele sayı üretme işleminde belirli sayıları engellemek, standart kütüphane yöntemleri veya üçüncü taraf kütüphaneler kullanılarak yapılabilir. Bu teknikler, belirli sayıların üretilmesini önleyerek rastgele sayı üretiminin özel gereksinimlerini karşılamaya yardımcı olur.

İlgili Kaynaklar


Yayımlandı