Loading

mt19937 用法

老是忘记怎么用,自己写一个用作备忘录吧。
首先需要的头文件:

#include <random>

或者是

#include <bits/stdc++.h> //万能头 yyds

先制定随机种子(关系到之后的随机数)

std::mt19937 myseed(114514);

对于一般的情况,我们只需要用到整数的随机数。
定义一个从 \(l\)\(r\)均匀 随机数可以这样。

std::uniform_int_distribution <int> myrand(l, r);

使用的话直接看代码 :

#include <bits/stdc++.h>

std::mt19937 seed(114514);

signed main(void) {
  std::uniform_int_distribution <int> dist(0, 4);
  for (int i = 0; i < 100000; ++i)
    std::cout << myrand(seed) << std::endl;
}

为了方便,我们可以这样写一个自己的 \(rand(l,r)\) 函数。

std::mt19937 seed(114514);
template <class T> T rand(T l, T r) {
  return std::uniform_int_distribution<int>(l, r)(seed);
}
posted @ 2022-04-01 21:27  Aonynation  阅读(1463)  评论(1编辑  收藏  举报