Возможно ли использовать случайный движок, предоставляемый STL в C++ 11 с несколькими адаптерами одновременно?C++ 11 адаптеров с несколькими случайными номерами
Например, используя Вихрь Мерсенна Двигатель с обоими Discard Block engine adaptor (от каждого блока размером Р, порожденного базового двигателя, адаптер поддерживает только числа R, отбрасывая остальное) и Shuffle Order engine adaptor (подает выходной сигнал случайной номер двигателя в другом порядке).
Пример двигателя использовать адаптер для тех, кто не зная:
//some code here to create a valid seed sequence
mt19937 eng(mySeedSequence);
discard_block_engine<mt19937,11,5> discardWrapper(eng);
shuffle_order_engine<mt19937,50> shuffleWrapper(eng);
for (int i=0; i<100; ++i) {
//for every 5 calls to "discardWrapper()", the twister engine
//advances by 11 states (6 random numbers are thrown away)
cout << discardWrapper() << endl;
}
for (int i=0; i<100; ++i) {
//essentially 50 random numbers are generated from the Twister
//engine and put into a maintained table, one is then picked from
//the table, not necessarily in the order you would expect if you
//knew the internal state of the engine
cout << shuffleWrapper() << endl;
}
Вы имеете в виду, если можно адаптировать адаптированный движок? Или, если возможно, что выход одного и того же базового движка будет адаптирован двумя разными способами? –
По существу либо. Одновременно иметь двигатель с двумя адаптерами. –