- gf25008 的博客
《GF日记》——黑科技——随机数
- @ 2025-9-20 20:10:22
随机数
随机数是c++必不可少的技巧,(特别是在做游戏时)
随机数生成有两种办法
第一种
通过计时器实现:
int numsj = rand() % ( 随机范围 ( 0 ~ n-1 ) ) + 50;
rand() 详情请见:
不过这种方法的缺点有点多,只能随机 ~ 的数,随机性不高,一秒随机一次,不够平均
第二种
通过随机数函数实现:
int numsj(){
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dist(起始随机范围, 终止随机范围);
return dist(gen);
}
这种方法比第一种好用多了,不过会复杂一点
原文
# 随机数
随机数是c++==必不可少==的技巧,~~(特别是在做游戏时)~~
随机数生成有两种办法
## 第一种
**通过==计时器==实现:**
```
int numsj = rand() % ( 随机范围 ( 0 ~ n-1 ) ) + 50;
```
**rand() 详情请见:**
不过这种方法的==缺点==有点多,只能随机 $0~n-1$ 的数,随机性不高,==一秒==随机一次,==不够平均==
## 第二种
**通过==随机数函数==实现:**
```
int numsj(){
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dist(起始随机范围, 终止随机范围);
return dist(gen);
}
```
这种方法比第一种==好用多了==,不过会==复杂==一点