C++編程產(chǎn)生指定范圍內的隨機數(shù)
更新時間:2020年04月16日 14:59:04 作者:路癡的旅行
這篇文章主要為大家詳細介紹了C++編程產(chǎn)生指定范圍內的隨機數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
C/C++編程產(chǎn)生指定范圍內的隨機數(shù),直接上個小程序:
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string>
#include <string.h>
/*
* 獲取隨機數(shù)
* return : 隨機數(shù)
*/
int commonGetRandNumber(const int low, const int high)
{
int randNum = 0;
//生成隨機數(shù)
randNum = rand() % (high - low + 1) + low;
return randNum;
}
#define RAND_MAX_LEN (16)
#define RAND_MIN_VALUE (0)
#define RAND_MAX_VALUE (9999)
/*
* 獲取隨機數(shù)的字符串形式
* return : 隨機數(shù)字符串
*/
std::string commonGetRandString()
{
int low = RAND_MIN_VALUE;
int high = RAND_MAX_VALUE;
int randNum = 0;
char randArray[RAND_MAX_LEN] = {0};
std::string randStr;
//生成隨機數(shù)
srand(time(0));
randNum = commonGetRandNumber(low, high);
snprintf(randArray, sizeof(randArray)-1, "%d", randNum);
randStr = randArray;
return randStr;
}
/*
* 獲取根據(jù)給定字符數(shù)組和隨機數(shù)生成隨機字符串
*/
std::string getNonceStr(int length = 32)
{
std::string chars = "abcdefghijklmnopqrstuvwxyz0123456789";
std::string str = "";
//生成隨機數(shù)
srand(time(0));
for ( int i = 0; i < length; i++ )
{
str += chars.substr(commonGetRandNumber(0, chars.size() - 1), 1);
}
return str;
}
int main()
{
//獲取隨機數(shù)
srand(time(0));
int randNum = commonGetRandNumber(10, 100);
printf("randNum=%d\n", randNum);
//獲取隨機數(shù)的字符串形式
std::string randStr = commonGetRandString();
printf("randStr=%s\n", randStr.c_str());
//獲取根據(jù)給定字符數(shù)組和隨機數(shù)生成隨機字符串
std::string randChar = getNonceStr();
printf("randChar=%s\n", randChar.c_str());
}
調用rand()會產(chǎn)生[0,32757]之間的隨機數(shù),(high - low)的絕對值不能超過32767。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼
這篇文章主要介紹了C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼,需要的朋友可以參考下2017-09-09
關于C++中push_back()函數(shù)的用法及代碼實例
push_back是vector的一個方法,表示將一個元素存儲到容器的末尾,下面這篇文章主要給大家介紹了關于C++中push_back()函數(shù)用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11

