c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数
前言
本文主要講解C語言的隨機函數,學習隨機函數將由此拉開序幕,親愛的準備好了沒?
隨機數
隨機數主要是通過rand()函數產生的,rand() 函數可以隨機產生一個正整數,它會產生一個無符號整數,范圍在1~32767,即兩字節16位的整數最大值。而GNU C++產生的隨機數范圍為2147483647。 范圍中的每一個數在每次隨機調用rand時都有相同的概率被選中。使用隨機函數的時候需要加上#inlcude 頭文件。如以下案例:
注意:每次程序運行的結果答案都是相同的,這顯然不是我們想要的。這是因為,rand函數不是真正的隨機數生成器,而srand()會設置供rand()使用的隨機數種子。如果你在第一次調用rand()之前沒有調用srand(),那么系統會為你自動調用srand()。而使用同種子相同的數調用 rand()會導致相同的隨機數序列被生成。如果要確保每次產生的都不一樣,我們需要引用一個專門為rand設置隨機化種子的函數srand().
隨機函數種子
隨機函數種子srand函數在庫中說明如下:
//接口說明:time()? returns? the? time? as? the? number? of? seconds? since? the Epoch, 1970-01-01 00:00:00 +0000 (UTC).? ?If tloc is non-NULL, the return value is also stored in the memory? pointed to by tloc.意思就是:要想每次隨機結果不一樣,就要每次運行更改種子,time函數返回當前時間距離197-01-01的描述,每次運行都不一樣,正好可以當做種子,既就是大家學習的rand()函數的時候,老師讓大家寫srand((unsigned int)time(NULL))的原因,讓隨機數與時間綁定關系,時間在改變,隨機數自然能夠改變。
其實srand函數的參數編程中可以自己隨意設置,偽隨機就是每次得到的數據有規律可循,默認情況下數字在1~0x7fff,也就是(1~32767)。當設置參數為srand(1000),則生成的隨機數是1000~0x7fff。
如下實例:
隨機函數固定范圍
主要思路其實非常簡單,就是通過取余來做即可
尾言
文章都是手打原創,每天最淺顯的介紹C語言、C++,windows知識,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。如果足下基礎比較差,不妨關注下人人都可以學習的視頻教程
《C語言51課視頻教程合集》
《C++45課視頻教程》
通俗易懂,深入淺出,一個視頻只講一個知識點。視頻不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以觀看,隨時隨地漲姿勢
總結
以上是生活随笔為你收集整理的c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过两点的经纬度计算与正北方向的夹角JS
- 下一篇: 网站木马修复网站漏洞修复方案