C Style (srand, rand)
缺点:srand(time(0)) 在较短时间间隔内不会改变。
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); for (int i = 0; i < 10; i++) { cout << rand() << endl; } return 0; }
1318042169 215619879 272650 607238762 43966714 1763422509 1703932261 1548025279 1025366738 1664469656
C++11 <random>
如果想要生成浮点随机数,可将第10行uniform_int_distribution 换位uniform_int_distribution ,int 换为double 。
然而并不常用……
#include <iostream> #include <random> using namespace std; int main() { mt19937 rng; rng.seed(random_device()()); uniform_int_distribution<int> dist6(1, 1e6); for (int i = 0; i < 10; i++) { cout << dist6(rng) << endl; } return 0; }
586472 666710 433629 366199 589288 233130 126209 308218 689267 733495
暂时只知道了这两种。
本作品使用基于以下许可授权:Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.