Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Doğrusal eşzamanlı algoritma tarafından rastgele bir dizi oluşturur.
Sözdizimi
class linear_congruential_engine{
public: // types
typedef UIntType result_type;
// engine characteristics
static constexpr result_type multiplier = a;
static constexpr result_type increment = c;
static constexpr result_type modulus = m;
static constexpr result_type min() { return c == 0u 1u: 0u; }
static constexpr result_type max() { return m - 1u; }
static constexpr result_type default_seed = 1u;
// constructors and seeding functions
explicit linear_congruential_engine(result_type s = default_seed);
template <class Sseq>
explicit linear_congruential_engine(Sseq& q);
void seed(result_type s = default_seed);
template <class Sseq>
void seed(Sseq& q);
// generating functions
result_type operator()();
void discard(unsigned long long z);
};
Parametreler
UIntType
İşaretsiz tamsayı sonuç türü. Olası türler için bkz <. rastgele>.
A
Çarpan. Önkoşul: Açıklamalar bölümüne bakın.
C
Artım. Önkoşul: Açıklamalar bölümüne bakın.
M
Modulus. Önkoşul: Bkz. açıklamalar.
Üyeler
linear_congruential_engine::linear_congruential_engine
linear_congruential_engine::discard
linear_congruential_engine::max
linear_congruential_engine::min
linear_congruential_engine::operator()
linear_congruential_engine::seed
default_seed, ve tek değer oluşturucu için linear_congruential_engine::seed varsayılan parametre değeri olarak kullanılan, olarak 1utanımlanan bir üye sabitidir.
Altyapı üyeleri hakkında daha fazla bilgi için bkz <. rastgele>.
Açıklamalar
Sınıf linear_congruential_engine şablonu en basit oluşturucu altyapısıdır, ancak en hızlı veya en yüksek kalite değildir. Bu altyapı üzerinde bir iyileştirme substract_with_carry_engine. Bu motorların hiçbiri mersenne_twister_engine kadar hızlı veya yüksek kaliteli sonuçlara sahip değildir.
Bu altyapı, yinelenme ilişkisini ( nokta) x(i) = (A * x(i-1) + C) mod Mkullanarak kullanıcı tarafından belirtilen imzalanmamış tam sayı türünün değerlerini üretir.
M sıfırsa, bu modül işlemi için kullanılan değer olurnumeric_limits<result_type>::max() + 1. Altyapının durumu döndürülen son değer veya öğesine çağrı yapılmamışsa operator()tohum değeridir.
M sıfır değilse, şablon bağımsız değişkenlerinin A ve C değerleri M'den küçük olmalıdır.
Bu altyapıdan doğrudan bir oluşturucu oluşturabilmenize rağmen, önceden tanımlanmış bu tür tanımlarından birini de kullanabilirsiniz.
minstd_rand0: 1988 minimal standart motor (Lewis, Goodman ve Miller, 1969).
typedef linear_congruential_engine<unsigned int, 16807, 0, 2147483647> minstd_rand0;
minstd_rand: Minimum standart motor minstd_rand0 güncelleştirildi (Park, Miller ve Stockmeyer, 1993).
typedef linear_congruential_engine<unsigned int, 48271, 0, 2147483647> minstd_rand;
Doğrusal eşzamanlı altyapı algoritması hakkında ayrıntılı bilgi için Doğrusal eşzamanlı oluşturucu Wikipedia makalesine bakın.
Gereksinimler
Üst bilgi:<rastgele>
Ad alanı: std