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
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.