目录
rand()
在以往的c/c++中生成随机数是使用rand()函数,但它也有一些使用的注意事项
头文件
#include <stdlib.h>
使用
随机数范围
- rand()的返回值范围在 [0, RAND_MAX]
- RAND_MAX是一个宏定义,在stdlib.h中,在部分系统中值为32768
- 如果需要其他范围,则需要自己运算,例如:
- [a,b) 的随机整数,使用 (rand() % (b-a))+ a;
- [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a;
- (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1;
需要srand()初始化种子
- void srand(unsigned int seed);
- 如果不使用srand()初始化,然后直接调用rand()的话,会自动调用srand(1)进行初始化,因此你会发现,将写好的程序重复运行多次,每次生成的随机数是一样的。
- 我们一般是使用时间戳进行初始化,如:
#include <time.h>
#include <stdlib.h>
int main() {
srand(time(nullptr)); //初始化种子
rand(); //获取随机数
return 0;
}
多线程时
- 在多线程中,对于rand()来说每个线程都是独立的,因此需要在每一个需要生成随机数的线程都进行初始化。
- 比如,假设程序现在有线程 main, a, b, c
- 其中main, a线程各自调用了srand(time(nullptr));进行初始化种子,而b,c线程没有
- 那么main,a线程中调用rand()才能得到不同随机数
- 而在b, c中,会默认调用srand(1),因此这俩线程中生成的随机数是一样的。
c++11_random
- 如果你可以使用c++11标准,应该考虑使用<random>库的新方法获取随机数,功能更强更省心,他们的使用方法需要再了解:
- 产生均匀分布的整数:uniform_int_distribution
- 产生均匀分布的实数:uniform_real_distribution
- 产生正态分布的实数:normal_distribution
- 生成二项分布的布尔值:bernoulli_distribution
acheter mГ©dicament en ligne sans ordonnance: Pharmacie en ligne livraison Europe – pharmacie en ligne france livraison belgique
acheter mГ©dicament en ligne sans ordonnance: pharmacie en ligne france pas cher – pharmacie en ligne
pharmacie en ligne fiable: pharmacie en ligne – pharmacie en ligne france pas cher
Pharmacie en ligne livraison Europe: kamagra en ligne – pharmacies en ligne certifiГ©es
п»їpharmacie en ligne france: Medicaments en ligne livres en 24h – pharmacie en ligne sans ordonnance
Pharmacie en ligne livraison Europe: Levitra pharmacie en ligne – pharmacie en ligne
trouver un mГ©dicament en pharmacie: п»їpharmacie en ligne france – pharmacie en ligne france pas cher
Pharmacie en ligne livraison Europe: levitra en ligne – pharmacie en ligne france pas cher
pharmacie en ligne: pharmacie en ligne pas cher – pharmacie en ligne pas cher
pharmacie en ligne france pas cher: cialis sans ordonnance – pharmacie en ligne sans ordonnance
pharmacie en ligne france pas cher: acheter mГ©dicament en ligne sans ordonnance – pharmacie en ligne france livraison internationale
п»їpharmacie en ligne france: Cialis sans ordonnance 24h – trouver un mГ©dicament en pharmacie
acheter mГ©dicament en ligne sans ordonnance: Levitra 20mg prix en pharmacie – Pharmacie en ligne livraison Europe
trouver un mГ©dicament en pharmacie: kamagra gel – pharmacie en ligne france fiable
Viagra gГ©nГ©rique pas cher livraison rapide: viagra sans ordonnance – Sildenafil teva 100 mg sans ordonnance
Viagra gГ©nГ©rique sans ordonnance en pharmacie: viagra sans ordonnance – Le gГ©nГ©rique de Viagra
trouver un mГ©dicament en pharmacie: Levitra sans ordonnance 24h – trouver un mГ©dicament en pharmacie
Pharmacie sans ordonnance: acheter kamagra site fiable – vente de mГ©dicament en ligne
pharmacie en ligne fiable: Cialis sans ordonnance 24h – Pharmacie Internationale en ligne
pharmacie en ligne france livraison belgique: cialis sans ordonnance – Pharmacie en ligne livraison Europe
pharmacie en ligne avec ordonnance: Levitra acheter – Pharmacie en ligne livraison Europe
pharmacie en ligne livraison europe: levitra generique sites surs – pharmacie en ligne livraison europe
https://levitraenligne.shop/# pharmacie en ligne
pharmacie en ligne avec ordonnance: kamagra en ligne – acheter mГ©dicament en ligne sans ordonnance
Pharmacie en ligne livraison Europe: levitra generique sites surs – vente de mГ©dicament en ligne
Hello!
This post was created with XRumer 23 StrongAI.
Good luck 🙂
pharmacie en ligne france pas cher: Medicaments en ligne livres en 24h – pharmacie en ligne
trouver un mГ©dicament en pharmacie: Medicaments en ligne livres en 24h – pharmacie en ligne france pas cher
pharmacie en ligne france fiable: Cialis sans ordonnance 24h – Achat mГ©dicament en ligne fiable
pharmacie en ligne: Acheter Cialis 20 mg pas cher – pharmacie en ligne livraison europe
Hello.
This post was created with XRumer 23 StrongAI.
Good luck 🙂
Pharmacie Internationale en ligne: Levitra 20mg prix en pharmacie – pharmacie en ligne
Pharmacie en ligne livraison Europe: Levitra pharmacie en ligne – pharmacie en ligne france fiable
Viagra homme sans ordonnance belgique: Acheter du Viagra sans ordonnance – Viagra pas cher livraison rapide france
pharmacie en ligne fiable: Acheter Cialis – pharmacie en ligne sans ordonnance
pharmacie en ligne france pas cher: Pharmacie en ligne livraison Europe – Achat mГ©dicament en ligne fiable
Acheter viagra en ligne livraison 24h Acheter du Viagra sans ordonnance Acheter Sildenafil 100mg sans ordonnance
Pharmacie en ligne livraison Europe: cialis prix – pharmacie en ligne sans ordonnance
Pharmacie sans ordonnance: pharmacie en ligne pas cher – pharmacie en ligne avec ordonnance
Viagra 100 mg sans ordonnance: Meilleur Viagra sans ordonnance 24h – Viagra 100 mg sans ordonnance
https://viaenligne.shop/# Viagra homme prix en pharmacie sans ordonnance
acheter mГ©dicament en ligne sans ordonnance: kamagra livraison 24h – pharmacie en ligne france pas cher
pharmacie en ligne livraison europe: pharmacie en ligne – pharmacies en ligne certifiГ©es
internet apotheke: beste online-apotheke ohne rezept – apotheke online
pharmacie en ligne france pas cher pharmacie en ligne france livraison internationale pharmacie en ligne france fiable
http://eufarmaciaonline.com/# farmacia online envГo gratis
farmacia online envГo gratis: farmacias online seguras – farmacia online barata y fiable
internet apotheke: medikamente rezeptfrei – online apotheke deutschland
farmacia online españa envÃo internacional: farmacias online seguras – farmacia online madrid
top farmacia online top farmacia online farmacie online sicure