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);
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM