在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在C語言中使用隨機數(shù)

C語言編程學(xué)習(xí)基地 ? 來源:未知 ? 作者:胡薇 ? 2018-11-09 16:46 ? 次閱讀

隨機數(shù)的使用,是不少在學(xué)C語言過程中進(jìn)行一些小功能開發(fā)的同學(xué)的一個技術(shù)問題,今天我們?yōu)榇蠹抑v解如何在C語言中使用隨機數(shù)。

通常情況下,使用最多的方法的就是使用rand函數(shù)隨機生成偽隨機數(shù)來完成隨機數(shù)的生成工作。注意這里的偽隨機數(shù)并非是假的! 只不過是計算機按自己的一套理論生成,并不是”完全理想”狀態(tài)下的隨機數(shù),所以是可以接受的。

函數(shù)原型為:int rand(void); 需要包含stdlib頭文件,它可以生成一個0 ~RAND_MAX之間的數(shù)字,其中RAND_MAX是一個宏,VC6下筆者查看為0x7fff,建議大家親自上機實驗!

這個時候你可能會遇到下面幾個問題:

Q1:為什么每次生成的數(shù)字都一樣?

A1:rand函數(shù)每次生成的數(shù)字與所謂的”種子”有關(guān),使用rand函數(shù)前需要使用srand函數(shù)進(jìn)行種種子(請見后文)。如果沒有調(diào)用,系統(tǒng)會默認(rèn)給1,導(dǎo)致每次的隨機數(shù)都一樣。

Q2:為什么最大是0x7fff?

A2:這可能取決于編譯器環(huán)境,筆者這里是VC6,在rand的函數(shù)中看到定義的最大值為0x7fff,如下圖:

Q3:如果我想生成特定范圍內(nèi)的數(shù)字,該如何寫呢?

A3:多多利用%求余運算符即可。如:

生成10以內(nèi)的數(shù)字,可以參考rand()%10

生成1~10之間的數(shù)字,可以參考rand()%10+1

特定的,要生成a~b之間的數(shù)字,可以參考rand()%(b-a+1)+a

更多時候,我們希望每次運行生成的數(shù)字都不相同,這個時候需要配合srand函數(shù)來解決這一問題。關(guān)于具體原因,大家可以參考rand函數(shù)與srand函數(shù)的實現(xiàn)細(xì)節(jié)來加以理解,代碼如下:

那么srand函數(shù)如何使用呢,先看函數(shù)原型:

void srand(unsigned seed); 只需要在rand函數(shù)使用之前,調(diào)用srand函數(shù)傳入一個種子即可。但事實上傳入一個數(shù),往往產(chǎn)生的隨時仍然固定不變。那么較為聰明的寫法目前看來只有使用系統(tǒng)時間作為種子最為合適,所以這里srand的參數(shù)往往傳入time(NULL)參數(shù)作為獲取系統(tǒng)當(dāng)前時間作為種子,來產(chǎn)生不同的結(jié)果!

并注意類型一致,srand((unsigned)time(NULL)); 記得添加time.h的頭文件!

測試代碼如下:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140699
  • 隨機數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    12145

原文標(biāo)題:C語言如何使用隨機數(shù)?

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    請問Ti的哪個庫可以調(diào)用C語言隨機數(shù)產(chǎn)生函數(shù)?

    Ti的哪個庫可以調(diào)用C語言隨機數(shù)產(chǎn)生函數(shù)啊,就是怎么在CCS里產(chǎn)生隨機數(shù)
    發(fā)表于 07-31 07:03

    單片機C語言如何產(chǎn)生隨機數(shù)

    來實現(xiàn)隨機數(shù)的產(chǎn)生。 C語言中有三個通用的隨機數(shù)發(fā)生器,分別為 rand函數(shù)、random函數(shù)、randomize 函數(shù),但是rand函數(shù)產(chǎn)生的并不是真意正義上的
    發(fā)表于 05-14 15:14

    產(chǎn)生隨機數(shù)的方法有哪些

    寫好一個隨機數(shù)表,然后進(jìn)行取數(shù)據(jù)。也是可以的。KEIL里面產(chǎn)生隨機數(shù)的函數(shù)確實是rand(),但頭文件是stdlib.h,不是time.h。C語言提供了一些庫函數(shù)來實現(xiàn)
    發(fā)表于 07-15 09:08

    什么是隨機數(shù)

    做開發(fā)的工程師們應(yīng)該或多或少都接觸過隨機數(shù),可能認(rèn)為它就是一個隨機生成的數(shù)字嘛,使用時也很簡單,只要調(diào)用開發(fā)語言提供的函數(shù)即可。但實際上隨機數(shù)后面還是有著比較復(fù)雜但也有趣的知識點的。根
    發(fā)表于 07-22 09:42

    C語言中隨機數(shù)的產(chǎn)生及性能檢驗

    系統(tǒng)仿真或加密算法中常需要產(chǎn)生滿足一定分布函數(shù)的 偽隨機數(shù) ,高級程序設(shè)計語言中的庫函數(shù)采用線性同余法產(chǎn)生一個在[0,32767] 服從均勻分布的偽隨機數(shù),但每次程序運行的結(jié)果都
    發(fā)表于 07-07 16:35 ?70次下載

    C語言random函數(shù)偽隨機數(shù)產(chǎn)生

    C語言的stalib.h庫里面的random函數(shù)可以得到一個0-0x7FFFh的隨機數(shù),當(dāng)然,調(diào)用隨機數(shù)函數(shù)之前,是要進(jìn)行種子的篩選的,以當(dāng)前的時間參數(shù)作為種子,可以使得偽
    發(fā)表于 08-25 17:56 ?1.3w次閱讀

    C#教程之偽隨機數(shù)加密

    C#教程之偽隨機數(shù)加密,很好的C#資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-21 09:52 ?5次下載

    C語言教程之循環(huán)顯示隨機數(shù)問題

    C語言教程之循環(huán)顯示隨機數(shù)問題,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 15:03 ?0次下載

    產(chǎn)生隨機數(shù)

    一個自己寫的產(chǎn)生隨機數(shù)的工程
    發(fā)表于 12-01 15:45 ?13次下載

    C語言中隨機數(shù)的生成代碼

    C語言中隨機數(shù)的生成完整代碼:
    的頭像 發(fā)表于 02-20 09:21 ?1.1w次閱讀

    單片機產(chǎn)生隨機數(shù)的兩種方法

    寫好一個隨機數(shù)表,然后進(jìn)行取數(shù)據(jù)。也是可以的。KEIL里面產(chǎn)生隨機數(shù)的函數(shù)確實是rand(),但頭文件是stdlib.h,不是time.h。C語言提供了一些庫函數(shù)來實現(xiàn)
    發(fā)表于 03-01 11:04 ?2520次閱讀

    DApp的隨機數(shù)為什么會被黑客破解

    隨機數(shù)可以分為真隨機數(shù)和偽隨機數(shù)。真隨機數(shù)需要同時滿足隨機性、不可預(yù)測性、不可重現(xiàn)性,而偽隨機數(shù)
    發(fā)表于 10-18 10:59 ?2675次閱讀

    單片機C語言如何產(chǎn)生隨機數(shù)

    C語言中有三個通用的隨機數(shù)發(fā)生器,分別為 rand函數(shù)、random函數(shù)、randomize 函數(shù),但是rand函數(shù)產(chǎn)生的并不是真意正義上的隨機數(shù),是一個偽
    的頭像 發(fā)表于 11-26 14:25 ?7795次閱讀

    單片機C語言如何產(chǎn)生隨機數(shù)

    隨機數(shù)在單片機的應(yīng)用中也是很多的,當(dāng)然產(chǎn)生隨機數(shù)的方法有很多,當(dāng)中有一個就是利用單片機定時器,取出未知的定時器THX和TLX的值,再加以運算得到一個規(guī)定范圍內(nèi)的隨機數(shù)值。這做法也是可行的。或者預(yù)先寫好一個
    發(fā)表于 02-08 17:12 ?11次下載
    單片機<b class='flag-5'>C</b><b class='flag-5'>語言</b>如何產(chǎn)生<b class='flag-5'>隨機數(shù)</b>

    何在FPGA中實現(xiàn)隨機數(shù)發(fā)生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7中實現(xiàn)4位偽隨機數(shù)發(fā)生器(PRNGs)。
    的頭像 發(fā)表于 08-06 11:20 ?1134次閱讀
    如<b class='flag-5'>何在</b>FPGA中實現(xiàn)<b class='flag-5'>隨機數(shù)</b>發(fā)生器
    主站蜘蛛池模板: 快播久久 | 亚洲人成电影 | 亚洲一区欧美二区 | 中文字幕av一区二区三区 | 免费一级特黄 | 日本v片免费一区二区三区 日本www.色 日本wwwwww | 欧美色图日韩色图 | 黑人又大又粗又长又深受不了 | 一区二区不卡免费视频 | www色午夜 | 欧美yw193.c㎝在线观看 | 手机看片日韩福利 | 国产亚洲精品线观看77 | 色五月丁香五月综合五月 | 亚洲色图欧美激情 | 国产老师的丝袜在线看 | 色综合亚洲天天综合网站 | 2017亚洲男人天堂 | 一级特黄特黄xxx视频 | 欧美亚洲天堂网 | 中文字幕天堂在线 | 免费超爽视频 | 日本www色| 久久精品.com | 天天精品视频 | 午夜网站在线观看 | 狠狠色噜噜狠狠狠狠97不卡 | 天天操夜夜做 | 国产播放啪视频免费视频 | 午夜精品久久久久久久四虎 | 国产精品你懂得 | 性欧美xxxx视频在线观看 | 久久88色综合色鬼 | 日本a级免费 | 美女被免费网站视频在线 | 色综合久久综合欧美综合图片 | 国产精品亚洲四区在线观看 | 天天草夜夜操 | 欧美成人性色生活片天天看 | 国产精品你懂得 | 在线观看中文字幕一区 |