Aracılığıyla paylaş


linear_congruential_engine Sınıfı

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

Ayrıca bkz.

<rastgele>