#include #include #include #include #include using namespace std; class Generator { public: Generator(unsigned int seed) { data.push_back(seed); } int operator() () { data.push_back(accumulate(data.begin(), data.end(), 0)); // find accumulated sum and save it random_shuffle(data.begin(), data.end()); // permute elements return data.front(); // return first } private: vector data; }; void main() { vector v(20); // generate data for v generate(v.begin(), v.end(), Generator(1)); // print results copy(v.begin(), v.end(), ostream_iterator(cout, " ")); }