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