#include #include #include int main(int argc, char *argv[]) { if (argc != 5) { std::cerr << "Usage: " << argv[0] << " N L K seed" << std::endl; return 1; } unsigned n = atoi(argv[1]); unsigned l = atoi(argv[2]); unsigned k = atoi(argv[3]); int seed = atoi(argv[4]) * n; std::mt19937 twister(seed); std::uniform_int_distribution values(0, 9); std::uniform_int_distribution chars(0, 35); std::cout << n << " " << l << " " << k << "\n"; for (unsigned i = 0; i < n; ++i) { for (unsigned j = 0; j < 10; ++j) { int ch_src = chars(twister); std::cout << (ch_src < 10 ? char('0' + ch_src) : char('A' + ch_src - 10)); } for (unsigned j = 0; j < l; ++j) { std::cout << " " << values(twister); } std::cout << "\n"; } return 0; }