四川住房和城鄉(xiāng)建設(shè)廳官網(wǎng)安全員seo主要是指優(yōu)化
目錄
- 一、方法一
- 1、主要函數(shù)
- 2、示例代碼
- 二、方法二
- 1、方法概述
- 2、參考文獻
- 3、示例代碼
- 三、方法三
- 1、參考鏈接
- 2、示例代碼
本文由CSDN點云俠原創(chuàng),原文鏈接。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲。
一、方法一
1、主要函數(shù)
?? rand()
函數(shù)是C++標(biāo)準(zhǔn)庫中的一個偽隨機數(shù)生成器,它返回一個在0到RAND_MAX
之間的整數(shù),其中RAND_MAX
是一個常量,通常定義為32767。由于rand()
函數(shù)生成的隨機數(shù)序列是固定的,因此在使用rand()
函數(shù)之前,通常需要調(diào)用srand()
函數(shù)初始化隨機數(shù)種子。
srand()
函數(shù)接受一個無符號整數(shù)作為參數(shù),用于初始化隨機數(shù)種子。通常可以使用當(dāng)前時間作為隨機數(shù)種子,如下所示:
#include <cstdlib>
#include <ctime>int main() {srand(time(NULL)); // 使用當(dāng)前時間作為隨機數(shù)種子int x = rand(); // 生成一個隨機數(shù)return 0;
}
??上面的代碼中,srand(time(NULL))
調(diào)用了srand()
函數(shù)初始化隨機數(shù)種子。time(NULL)
返回當(dāng)前時間,因此每次運行程序時,隨機數(shù)種子都不同。這樣就可以生成不同的隨機數(shù)序列。
??如果要生成一個指定范圍內(nèi)的隨機整數(shù),可以使用取模運算符(%)將rand()函數(shù)的返回值對范圍大小取模。例如,要生成一個0到99之間的隨機整數(shù),可以這樣寫:
int x = rand() % 100;
??上面的代碼中,rand() % 100調(diào)用了rand()函數(shù)生成一個隨機整數(shù),并對100取模,得到一個0到99之間的隨機整數(shù)。
??如果要生成一個指定范圍內(nèi)的隨機浮點數(shù),可以這樣寫:
double x = (double)rand() / RAND_MAX * (max - min) + min;
??其中,min
和max
分別表示隨機數(shù)的最小值和最大值。上面的代碼中,(double)rand() / RAND_MAX * (max - min) + min
調(diào)用了rand()
函數(shù)生成一個隨機整數(shù),并將其轉(zhuǎn)換為浮點數(shù)。然后除以RAND_MAX
得到一個0到1之間的隨機浮點數(shù)。最后乘以(max - min)
并加上min
得到一個在指定范圍內(nèi)的隨機浮點數(shù)。
2、示例代碼
std::nth_element()
二、方法二
1、方法概述
??由于測量誤差可以是正的,也可以是負的,為了使構(gòu)造的測量誤差更符合于實際,則必須在(-1,1)之間產(chǎn)生一組隨機數(shù)。為此,把產(chǎn)生的(0,1)之間的隨機數(shù)先擴大10倍或100倍,然后取整得到正整數(shù)z,把z值作為-1的指數(shù),再與產(chǎn)生的(0,1)間的隨機數(shù)相乘,這樣就可以通過計算機得到(-1,1)之間的均勻分布的隨機數(shù)值,再用產(chǎn)生的隨機數(shù)乘上一個可能出現(xiàn)誤差的限值,就構(gòu)成了測點上可能出現(xiàn)的測量誤差值來。
2、參考文獻
[1]成樞. 地面沉降變形預(yù)計模型與監(jiān)測技術(shù)研究[D].山東科技大學(xué),2005.
3、示例代碼
#include <iostream>
#include <ctime>using namespace std;int main()
{int a = 0, b = 2;//區(qū)間(a,b]srand((unsigned int)time(NULL)); // 隨機數(shù)種子,保證每次運行產(chǎn)生不同的隨機數(shù)序列for (int i = 0; i < 10; ++i){float r01 = rand() / float(RAND_MAX); // 生成0~1的隨機數(shù)int z = r01 * 100;float d = pow(-1, z) * r01;cout << d << endl;}return 0;
}
三、方法三
1、參考鏈接
C++:生成-1到1之間的隨機浮點數(shù)
2、示例代碼
#include <iostream>
#include <ctime>using namespace std;int main()
{int a = 0, b = 2;//區(qū)間(a,b]srand((unsigned int)time(NULL));//隨機數(shù)種子,保證每次運行產(chǎn)生不同的隨機數(shù)序列for (int i = 0; i < 5; i++){int t; //隨機整數(shù)1、2,用于控制隨機浮點數(shù)的正負float d; //[-1,1]間的隨機數(shù)t = rand() % (b - a) + a + 1; d = pow(-1, t)*rand() / float(RAND_MAX); //生成[-1,1]之間的隨機浮點數(shù)cout << d;cout << endl;}return 0;
}