uniform_int_distribution 产生的随机数是均匀的吗?
  • 板块学术版
  • 楼主滑蒻稽
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/2/24 14:21
  • 上次更新2023/10/28 07:51:02
查看原帖
uniform_int_distribution 产生的随机数是均匀的吗?
113181
滑蒻稽楼主2022/2/24 14:21

我这样使用会不会导致产生的随机数不是伪随机而不均匀啊:

typedef long long ll;
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
ll rd(ll l, ll r) {
	uniform_int_distribution<ll> g(l, r);
	return g(rnd);
}

int main() {
	int a[100005];
	for(int i = 1; i <= 100000000; i++) {
		++a[rd(1, 100000)];
	}
	
	return 0;
}

就是每次都在函数里新建了一个 uniform_int_distribution<long long>,而不是一直使用同一个。

看了一下 a 数组,里面的数据在 9011090\sim 110 左右,感觉还是挺均匀的。

2022/2/24 14:21
加载中...