国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

這篇具有很好參考價值的文章主要介紹了C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CSDN話題挑戰(zhàn)賽第2期
參賽話題:學習筆記

學習之路,長路漫漫,寫學習筆記的過程就是把知識講給自己聽的過程。這個過程中,我們去記錄思考的過程,便于日后復習,梳理自己的思路。學習之樂,獨樂樂,不如眾樂樂,把知識講給更多的人聽,何樂而不為呢?

目錄

一.rand函數(shù)

應用

存在問題

二.srand函數(shù)

應用

存在問題

用time(0)實現(xiàn)真正的隨機數(shù)。

三.隨機函數(shù)的具體應用

1.產(chǎn)生隨機數(shù)范圍[1-10]

2.產(chǎn)生隨機數(shù)范圍[66,88]

3.總結


一.rand函數(shù)

C語言中如果我想要輸出一個隨機數(shù),那么我們就需要用rand函數(shù),我們先來看看這個函數(shù)的相關信息
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

?rand函數(shù)可以隨機的產(chǎn)生 0 ~ rand_max 的隨機數(shù),定義類型不同最大值也不同,rand 函數(shù)包含在頭文件stdlib.h中。我們再來看看這rand_max是多少
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

?0x7fff,這是一個十六進制數(shù)(以0x開頭),將它變成十進制就是32767,所以rand函數(shù)取隨機數(shù)的范圍是:0~32767

應用

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a=0;
    int i=0;
    while(i<=10){
    a=rand();
    printf("%d\n",a);
    i++;
    }

}

運行我們來看看結果:
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

存在問題

我運行了兩次,一次循環(huán)10次,一次循環(huán)20次??吹竭\行的結果我們發(fā)現(xiàn)一個很嚴重的問題——用rand函數(shù)輸出的隨機數(shù)是有順序的,它的輸出結果是一成不變的,很明顯這不是我們需要的隨機數(shù),這時我們就需要用到srand函數(shù)。

二.srand函數(shù)

包含文件:stdlib. h
srand函數(shù)是隨機數(shù)發(fā)生器的函數(shù)。原型:void srand(unsigned int seed);? srand和rand()配合使用產(chǎn)生偽隨機數(shù)序列。
此函數(shù)可以設定rand函數(shù)所用的隨機數(shù)產(chǎn)生演算法的種子值。任何大于一的種子值都會將rand隨機數(shù)所產(chǎn)生的虛擬隨機數(shù)序列重新設定一個起始點。

應用

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a=0;
    int i=0;
    srand(1);
    while(i<=20){
    a=rand();
    printf("%d\n",a);
    i++;
    }

}

在這里我先定義種子值為1,我在之后運行會定義種子值為2和5來看看他們的效果:
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

存在問題

?我們發(fā)現(xiàn)任何大于一的種子值都會將rand隨機數(shù)所產(chǎn)生的虛擬隨機數(shù)序列重新設定一個起始點。但這很明顯也不是我們需要的隨機數(shù),因為本質上它還算不是輸出了隨機數(shù),他需要給一個隨機種子值才能輸出一個隨機數(shù),那么我們有兩種方法來解決這個問題:通常可以利用 time(0) 或 getpid(0) 作為seed的返回值,

用time(0)實現(xiàn)真正的隨機數(shù)。

首先需要頭文件math.h

應用

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int a=0;
    int i=0;
    srand((unsigned int)time(NULL));
    while(i<=20){
    a=rand();
    printf("%d\n",a);
    i++;
    }

}

我們多運行幾次看看:
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))

?很明顯,之前存在的問題已經(jīng)解決了,現(xiàn)在輸出的就是我們所想的隨機數(shù)

三.隨機函數(shù)的具體應用

我們雖然已經(jīng)可以輸出隨機數(shù),但是rand函數(shù)的范圍是0~32767,在我們應用過程中這往往不是我們想要的,我們想可不可以縮小它的范圍或者說給定他一個范圍,比如說在0~100中輸出10個隨機數(shù),這些情況才是我們更需要的,那么接下來向大家介紹一下該怎么操作

1.產(chǎn)生隨機數(shù)范圍[1-10]

代碼:
?

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int a=0;
    int i=0;
    srand(time(0));//這樣寫跟srand((unsigned int)time(NULL));同義
    while(i<=20){
    a=rand()%11;
    printf("%d\n",a);
    i++;
    }

}

結果:
C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))?

2.產(chǎn)生隨機數(shù)范圍[66,88]

其余部分不要變,只要將a=rand()%11;改為a=66+rand()%23;即可

3.總結

產(chǎn)生隨機數(shù)范圍[n,m]

只要寫成a=n+rand()%(m-n+1);即可文章來源地址http://www.zghlxwxcb.cn/news/detail-440816.html

到了這里,關于C語言中隨機數(shù)的生成(rand函數(shù)和srand函數(shù))的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【LINUX相關】生成隨機數(shù)(srand、/dev/random 和 /dev/urandom )

    【LINUX相關】生成隨機數(shù)(srand、/dev/random 和 /dev/urandom )

    在一個循環(huán)中,生成多組隨機值,發(fā)現(xiàn)最終的結果都一樣,結果是調用的函數(shù)如下,在函數(shù)中設置了隨機種子,且是以秒為單位,那么在一秒類,由于都是用一個種子,srand又是偽隨機,所以最終生成的都是同一組隨機字符。 2.1 修改種子 (1)將 srand(time(NULL)); 放到循環(huán)外面

    2024年02月12日
    瀏覽(22)
  • 生成隨機數(shù)——C語言

    在C語言中,可以使用標準庫函數(shù) rand() 來生成隨機數(shù)。需要注意的是, rand() 函數(shù)生成的是偽隨機數(shù),具體的隨機序列取決于種子(seed)的值。 下面是一個簡單的示例代碼,展示如何在C語言中生成隨機數(shù): 在上述代碼中,首先包含了 stdio.h 、 stdlib.h 和 time.h 頭文件來使用相

    2024年02月12日
    瀏覽(31)
  • C語言中生成隨機數(shù)的方法

    C語言中生成隨機數(shù)的方法

    ??生成隨機數(shù)是指按照一定的規(guī)律,產(chǎn)生一些看似無規(guī)律的數(shù)字序列。在計算機中,通常使用隨機數(shù)生成器來生成隨機數(shù)。隨機數(shù)生成器可以分為真隨機數(shù)生成器和偽隨機數(shù)生成器兩種。真隨機數(shù)生成器是利用物理現(xiàn)象產(chǎn)生的隨機事件(如放射性衰變)來生成隨機數(shù)。而偽

    2024年02月05日
    瀏覽(20)
  • rexp() R函數(shù),生成服從指數(shù)分布的隨機數(shù)

    參考: R語言 【rexp】__BANA的博客-CSDN博客

    2024年02月07日
    瀏覽(23)
  • 利用隨機數(shù)生成猜數(shù)字游戲【C語言】

    利用隨機數(shù)生成猜數(shù)字游戲【C語言】

    自動生成隨機數(shù)的范圍:0-99 玩家猜數(shù)字,猜數(shù)字的過程中,根據(jù)猜測數(shù)據(jù)的大小給出大了或小了的反饋,直到猜對,游戲結束 根據(jù)游戲要求,第一步就是 先生成隨機數(shù) ,這里我們主要利用到三種函數(shù) rand 、 srand 、 time 函數(shù)。所以下面依次介紹這三種函數(shù)。 我們來看一段代

    2024年02月10日
    瀏覽(25)
  • 你知道C語言中隨機數(shù)是如何生成的嗎~?

    你知道C語言中隨機數(shù)是如何生成的嗎~?

    目錄 1.你聽說過函數(shù)rand的嗎? 2.引入srand函數(shù)~ 3.time函數(shù)的使用~ 4.隨機數(shù)的實現(xiàn)! 5. 如何控制隨機數(shù)的范圍呢~ 6.這時候我們就可以寫出一些比較有趣的代碼啦~? 7.對我們說的一些話~ ? ? ? ? ? ? ? ? ? ? ? ? ? ?不是每個人都能做自己想做的事,成為自己想成為的人。 ?

    2024年02月22日
    瀏覽(20)
  • C語言生成隨機數(shù)【簡易抽卡代碼為例】

    C語言生成隨機數(shù)【簡易抽卡代碼為例】

    本文將詳細解釋如何在C語言中生成隨機數(shù),并介紹應用的小技巧 c語言生成一個真正的隨機數(shù)需要用到三個函數(shù): rand()、srand()和time()。 函數(shù)介紹 頭文件 : #includestdlib.h 函數(shù)聲明 : int rand(void) 作用 ; 生成一個偽隨機數(shù)序列,隨機數(shù)取值范圍是0~RAND_MAX PS - RAND_MAX其實是一個宏

    2024年02月04日
    瀏覽(22)
  • C語言隨機數(shù)生成和范圍設置詳解【超詳細教程】

    C語言隨機數(shù)生成和范圍設置詳解【超詳細教程】

    本文詳細介紹了C語言中如何使用rand函數(shù)生成隨機數(shù)以及利用srand函數(shù)設置隨機數(shù)的種子,同時解釋了如何控制隨機數(shù)的范圍。適合初學者學習和實踐。

    2024年02月05日
    瀏覽(29)
  • Jmeter-BeanShell腳本中for循環(huán)里面使用random隨機數(shù)函數(shù),每次生成的都一樣

    預想的是每次循環(huán)生成的隨機數(shù)不一樣,但實際使用Random函數(shù)生成的是重復的。 以下是部分原代碼: 生成的updateList為: [{“id”:235214718648462,“dataId”:null,“data”:6708,“type”:“number”}, {“id”:318239582208002,“dataId”:333989510397954,“data”:6708,“type”:“number”}, {“id”:33398948

    2024年01月20日
    瀏覽(24)
  • R語言【base】——.Random.seed(),RNGkind(),RNGversion(),set.seed():隨機數(shù)生成器

    Package? base ?version 4.2.0 .Random.seed是一個整數(shù)向量,包含R中生成隨機數(shù)的隨機數(shù)生成器(RNG)狀態(tài)。它可以保存和恢復,但不應該被用戶更改。 RNGkind是一個更友好的接口,用于查詢或設置正在使用的RNG類型。 RNGversion在早期的R版本中可以用來設置隨機生成器(為了再現(xiàn)性)。 set

    2024年02月22日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包