#include <random>
#include <algorithm>
#include <functional>
#include <iostream>
int main()
{
// kiểu phần tử của mảng, nếu thích kiểu khác thì thay vào
typedef int T;
// khởi tạo random_device là đối tượng nguồn sinh ra các yếu tố ngẫu nhiên
std::random_device rd;
// random engine, dùng để sinh số ngẫu nhiên dựa vào các nguồn (seed) từ random_device
std::default_random_engine e1(rd());
// Các số ngẫu nhiên được sinh ra sẽ bị biến đổi để có phân phối đều trong đoạn [-10, 10]
// Nếu thích phân phối khác (như poission, bernoulli ...) thì thay vào
std::uniform_int_distribution<T> uniform_dist(-10, 10);
T v[10]; // Mảng 10 phần tử
std::generate_n(v, 10, std::bind(uniform_dist, std::ref(e1))); // Sinh 10 số ngẫu nhiên
for (auto n : v) std::cout << n << ' ';
}
I2luY2x1ZGUgPHJhbmRvbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkKewogICAgLy8ga2nhu4N1IHBo4bqnbiB04butIGPhu6dhIG3huqNuZywgbuG6v3UgdGjDrWNoIGtp4buDdSBraMOhYyB0aMOsIHRoYXkgdsOgbwogICAgdHlwZWRlZiBpbnQgVDsKCiAgICAvLyBraOG7n2kgdOG6oW8gcmFuZG9tX2RldmljZSBsw6AgxJHhu5FpIHTGsOG7o25nIG5ndeG7k24gc2luaCByYSBjw6FjIHnhur91IHThu5Egbmfhuqt1IG5oacOqbgogICAgc3RkOjpyYW5kb21fZGV2aWNlIHJkOwogICAgLy8gcmFuZG9tIGVuZ2luZSwgZMO5bmcgxJHhu4Mgc2luaCBz4buRIG5n4bqrdSBuaGnDqm4gZOG7sWEgdsOgbyBjw6FjIG5ndeG7k24gKHNlZWQpIHThu6sgcmFuZG9tX2RldmljZQogICAgc3RkOjpkZWZhdWx0X3JhbmRvbV9lbmdpbmUgZTEocmQoKSk7CiAgICAvLyBDw6FjIHPhu5Egbmfhuqt1IG5oacOqbiDEkcaw4bujYyBzaW5oIHJhIHPhur0gYuG7iyBiaeG6v24gxJHhu5VpIMSR4buDIGPDsyBwaMOibiBwaOG7kWkgxJHhu4F1IHRyb25nIMSRb+G6oW4gWy0xMCwgMTBdCiAgICAvLyBO4bq/dSB0aMOtY2ggcGjDom4gcGjhu5FpIGtow6FjIChuaMawIHBvaXNzaW9uLCBiZXJub3VsbGkgLi4uKSB0aMOsIHRoYXkgdsOgbwogICAgc3RkOjp1bmlmb3JtX2ludF9kaXN0cmlidXRpb248VD4gdW5pZm9ybV9kaXN0KC0xMCwgMTApOwoKICAgIFQgdlsxMF07IC8vIE3huqNuZyAxMCBwaOG6p24gdOG7rQogICAgc3RkOjpnZW5lcmF0ZV9uKHYsIDEwLCBzdGQ6OmJpbmQodW5pZm9ybV9kaXN0LCBzdGQ6OnJlZihlMSkpKTsgLy8gU2luaCAxMCBz4buRIG5n4bqrdSBuaGnDqm4KCiAgICBmb3IgKGF1dG8gbiA6IHYpIHN0ZDo6Y291dCA8PCBuIDw8ICcgJzsKfQ==