0Pricing
C++ Academy · Ders

random Başlığıyla Rastgele Sayılar

Modern üreteçler ve dağılımlarla kaliteli rastgele sayılar üretin

random Başlığıyla Rastgele Sayılar, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Neden rand() Kullanılmamalı?

Eski C std::rand() işlevi global durum kullanır, istatistiksel kalitesi düşüktür ve iş parçacığı güvenli değildir. Modern C++, <random> içinde çok daha iyi araçlar sunar.

Üç Parçalı Tarif

Modern C++'ta rastgele sayılar üç parçadan oluşur:

  • Bir tohum kaynağı (gerçek entropi)
  • Bir üreteç motoru (belirlenimci durum)
  • Bir dağılım (çıktıyı biçimlendirir)

random_device ile Tohumlama

std::random_device, işletim sisteminden gerçek entropi örnekler; ancak yavaş olabilir. Hızlı bir motoru tohumlamak için onu bir kez kullanın.

#include <random>
std::random_device rd;
std::mt19937 engine(rd());

mt19937 Motoru

std::mt19937 (Mersenne Twister), istatistiksel kalitesi mükemmel olan hızlı bir sözde rastgele motordur. Çoğu uygulama için varsayılan tercihtir.

Düzgün Tamsayı Dağılımı

Kapalı bir aralıkta düzgün dağılmış tamsayılar üretir.

std::uniform_int_distribution<int> dice(1, 6);
int roll = dice(engine);

Düzgün Gerçel Sayı Dağılımı

[a, b) yarı açık aralığındaki kayan nokta sayıları için kullanılır.

std::uniform_real_distribution<double> dist(0.0, 1.0);
double x = dist(engine);

Normal (Gauss) Dağılımı

Çan eğrisine uyan rastgele sayılar için kullanılır; benzetimlerde ve makine öğrenmesinde yaygındır.

std::normal_distribution<double> norm(0.0, 1.0); // mean 0, stddev 1
double x = norm(engine);

Diğer Dağılımlar

Kütüphanede daha birçok dağılım bulunur: bernoulli_distribution, poisson_distribution, exponential_distribution, discrete_distribution ve daha fazlası.

Tekrarlanabilir Rastgelelik

Sınamalarda, her çalıştırmada aynı diziyi elde etmek için sabit bir değerle tohumlayın.

std::mt19937 engine(42);
// Same output every time you run the program

Rastgele Karıştırma

Bir kapsayıcıyı, herhangi bir motor alan std::shuffle ile karıştırın.

#include <algorithm>
std::vector<int> v = {1,2,3,4,5};
std::shuffle(v.begin(), v.end(), engine);

Yaygın Hata: Döngüde Yeniden Tohumlama

Her rastgele sayı için yeni bir random_device veya motor oluşturmayın. Tek bir motor oluşturup çağrılar arasında yeniden kullanın.

Hızlı Kontrol

Bir sözde rastgele motoru tohumlamanın modern C++'taki en güvenli yolu nedir?

Özet

Modern C++ rastgeleliği tohumlama için random_device, motor olarak mt19937 ve çıktıyı biçimlendirmek için uniform_int_distribution gibi bir dağılım kullanır. Motoru yeniden kullanın; her çağrı için asla yeni bir motor oluşturmayın.

Sıkça Sorulan Sorular

“random Başlığıyla Rastgele Sayılar” dersi ücretsiz mi?

Evet — “random Başlığıyla Rastgele Sayılar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“random Başlığıyla Rastgele Sayılar” dersinde ne öğreneceğim?

Modern üreteçler ve dağılımlarla kaliteli rastgele sayılar üretin C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“random Başlığıyla Rastgele Sayılar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Tamsayı ve Kayan Noktalı Türler
  2. cmath Başlığı: pow, sqrt, abs, round
  3. random Başlığıyla Rastgele Sayılar
  4. Sayısal Sınırlar ve Taşma Davranışı
← C++ Academy Sayfasına Dön