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
online apotheke versandkostenfrei: kamagra oral jelly – internet apotheke
http://edpharmacie.pro/# Acheter mГ©dicaments sans ordonnance sur internet
acheter sildenafil 100mg sans ordonnance
https://farmaciabarata.pro/# farmacias online seguras en espaГ±a
http://farmaciaonline.men/# farmaci senza ricetta elenco
Pharmacie en ligne livraison gratuite Pharmacie en ligne livraison rapide pharmacie ouverte 24/24
https://onlineapotheke.tech/# п»їonline apotheke
canadian pharmacy: reliable canadian pharmacy – canada drugs online review
canadian pharmacy india: pharmacy website india – best india pharmacy
reputable indian pharmacies: international pharmacy india – indian pharmacy
mexican online pharmacies prescription drugs buying from online mexican pharmacy mexican pharmaceuticals online
top online pharmacy india: top online pharmacy india – top 10 pharmacies in india
https://misoprostol.guru/# order cytotec online
https://lipitor.pro/# lipitor 20mg price
http://misoprostol.guru/# cytotec abortion pill
http://misoprostol.guru/# buy cytotec over the counter
https://misoprostol.guru/# cytotec online
http://lipitor.pro/# buy lipitor online
https://lipitor.pro/# generic lipitor 10 mg
https://lipitor.pro/# buy lipitor 20mg
https://avodart.pro/# can you buy generic avodart without dr prescription
брилкс казино
brillx casino
Играя на Brillx Казино, вы можете быть уверены в честности и безопасности своих данных. Мы используем передовые технологии для защиты информации наших игроков, так что вы можете сосредоточиться исключительно на игре и наслаждаться процессом без каких-либо сомнений или опасений.Играть онлайн бесплатно в игровые аппараты стало еще проще с нашим интуитивно понятным интерфейсом. Просто выберите свой любимый слот и погрузитесь в мир ярких красок и захватывающих приключений. Наши разнообразные бонусы и акции добавят нотку удивительности к вашей игре. К тому же, для тех, кто желает ощутить настоящий азарт, у нас есть возможность играть на деньги. Это шанс попытать удачу и ощутить адреналин, который ищет настоящий игрок.
https://paxlovid.top/# paxlovid pill
best pill for ed: drugs for ed – best ed pills at gnc
buy antibiotics: over the counter antibiotics – buy antibiotics online
https://paxlovid.top/# п»їpaxlovid
zithromax over the counter: where to get zithromax over the counter – zithromax buy online
https://stromectolonline.pro/# ivermectin usa price
http://azithromycin.men/# buy zithromax online fast shipping
zithromax online pharmacy canada: how to get zithromax – azithromycin zithromax
http://stromectolonline.pro/# ivermectin humans
ivermectin pills human ivermectin brand name ivermectin for sale
https://azithromycin.men/# zithromax z-pak
zithromax online no prescription: zithromax z-pak – zithromax 250mg
http://gabapentin.pro/# 300 mg neurontin
http://gabapentin.pro/# neurontin cap
buy ivermectin for humans uk ivermectin brand name ivermectin 50
zithromax 500mg price in india: can i buy zithromax online – zithromax tablets for sale
legitimate canadian pharmacy: canadian pharmacy uk delivery – maple leaf pharmacy in canada
mexican drugstore online: pharmacies in mexico that ship to usa – mexican border pharmacies shipping to usa
https://indiamedicine.world/# pharmacy website india
reputable indian pharmacies: indianpharmacy com – top 10 pharmacies in india