當前位置:首頁 » 編程語言 » c語言rand函數

c語言rand函數

發布時間: 2022-12-21 22:10:01

『壹』 C中,rand()是什麼意思,有什麼作用

rand()是c語言中產生隨機數的一個函數,但是需要注意的是,產生的是偽隨機數。
rand()用法舉例:
產生1到100之間的隨機數
#include<stdio.h>
int
main(){
srand((unsigned)time(NULL));//產生隨機數種子
int
rand_num=(rand()%100)+1;//產生1到100直接的隨機數
printf("rand_num=%d\n",rand_num);
return
0;
}
代碼截圖:
(1)c語言rand函數擴展閱讀:
所謂的「偽隨機數」指的並不是假的隨機數。其實絕對的隨機數只是一種理想狀態的隨機數,計算機只能生成相對的隨機數即偽隨機數。
系統在調用rand()之前都會自動調用srand(),如果用戶在rand()之前曾調用過srand()給參數seed指定了一個值,那麼
rand()就會將seed的值作為產生偽隨機數的初始值;
而如果用戶在rand()前沒有調用過srand(),那麼系統默認將1作為偽隨機數的初始
值。如果給了一個定值,那麼每次rand()產生的隨機數序列都是一樣的。
所以為了避免上述情況的發生我們通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))來
產生種子。
如果仍然覺得時間間隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)後面乘上某個合適的整數。
例如,srand((unsigned)time(NULL)*10)。
參考資料:網路-rand函數

『貳』 c語言rand

rand()%90+10:隨機產生一個兩位數[10,100).

rand()是產生隨機數的函數(rand為random的縮寫),它產生一個[0,32767)之間一個隨機數.
rand()常與srand()一起使用.
srand()是seed_random的縮寫,seed意思是隨機數種子.如果程序中未使用srand()函數.C系統默認為srand(0).如果有以下語句:
for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%90+10;
則從a[0][0]到a[5][4]的值都相同.
因此要在for(i=0;i<5;i++)之前加上如下語句:
srand ( (unsigned) time (NULL) );
srand()的形參要求是unsigned型,而time()的返回值是長整型,故需強制轉換.而time(NULL)返回從1970年0時0分0秒到srand()語句執行時系統時鍾所經歷的秒數(這個數字很大達千萬,故為長整型).
如果你需要20個60到100的隨機數.則可用如下語句實現:
#inlude <stdio.h>
main()
{int a[20},i;
srand ( (unsigned) time (NULL) );
for(i=0;i<20;i++)
{a[i]=rand()%40+60;/*100-60=40*/
printf("%4d",a[i]);
}
}
其實從概律論來分析,用這兩個函數產生的隨機數並不隨機,它們並不符合正態分數.

『叄』 C中,rand()是什麼意思,有什麼作用

rand()是表示產生隨機數的一種函數,多應用於循環語句當中進行判斷。

比如說n=rand();

switch(n)

{case1.......

case2......}

這些都是都可能被執行的,因為數字是隨機的。

(3)c語言rand函數擴展閱讀:

注意

rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種了,為基準以某個遞推公式推算出來的一系數,

當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了 srand()函數,它的原形是void srand( int a) ,

功能是初始化隨機產生器既rand()函數的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數,可以產生可以預見的隨機序列。

參考資料來源:rand函數-網路

『肆』 c語言隨機函數rand()怎麼使用

它的返回值就是求取隨機的值,所以如果沒有對數有要求,直接這樣定:x0dx0aprintf("%d", rand());就能輸出一個隨機數.但如果對數有要求,如小數或在一定值以內:x0dx0a小數:rand()+rand()/100.0 //100.0後面的.0必須寫,100是說明求兩位小數,你可以自己加大.x0dx0a一定范圍:rand()%10+0 //10是頂和底的差,0是底,就是說求10到20之間的數就是:rand()%10+10x0dx0a但是調用它必須先調用srand()來生成隨機種子,如果你沒調用它,系統會自動調用.但是srand是有個參數的,種子就是根據這個參數來定的,所以這個參數決定著生成的隨機數.如果你在代碼里寫死了它:srand(10);那這樣rand生成的隨機數就也被定格在了一定量,所以不要這樣用.要這樣寫:x0dx0asrand(time(NULL));time的返回值是當前系統時間.因為時間不同,所取的數值也就不同.這樣隨機數就真正的隨機了.x0dx0atime在中聲明x0dx0arand,srand在中聲明.

『伍』 隨機函數rand怎麼用c語言

一、首先包含必要的頭文件

#include<stdio.h>

這個包含用於輸入輸出的函數。

#include<stdlib.h>

這個包含初始化隨機數種子、產生隨機數的函數。

#include<time.h>

這個包含與時間有關的函數,初始化隨機數種子時可以用到。

二、使用如下公式產生在區間[min,max]之間的隨機數

int r=rand()%(max-min+1)+min;

三、一個例子,產生10個[1,100]的隨機整數

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

const int min=1,max=100;

int i,r;

//用當前時間初始化隨機數種子

srand(time(NULL));

printf("隨機產生的10個1-100的整數是:");

for(i=0;i<10;i++)

{

r=rand()%(max-min+1)+min;

printf("%d,",r);

}

return 0;

}

四、運行結果的截圖

截圖2

『陸』 c語言之rand函數的使用

c語言中的rand隨機數函數,是按指定順序來產生的,在生成隨機數之前,在stdlib.h頭文件中,會初始化函數srand,根據隨機種子seed,來獲取隨機數,如果seed不變,每次運行得到的隨機數會是一樣的,因此,rand函數也被大家叫做偽隨機數。下面就來介紹下rand函數的使用

  • 01

    打開代碼編譯器,輸入如下所示的代碼片段

  • 02

    運行該代碼片段,得到10個隨機數,但是我們發現,不論運行幾次,生成的隨機數都是這10個,也就是說,在種子seed不變的情況下,生成的隨機數是偽隨機數

  • 03

    我們引入頭文件time.h,取時間戳作為seed的取值來源,改代碼片段如下,將srand(1)改成srand(time(NULL))

  • 04

    運行代碼,得到10個隨機數如下,定義非常量的srand參數,可以避免偽隨機數的產生

『柒』 c語言rand函數的使用

你好!!

srand((int)time(NULL));// 移到循環的外面

增加了每次出拳的顯示,便於查看

增加了局數的顯示

#include<stdlib.h>//為了使用srand、rand函數必須使用該頭文件
#include<time.h>//要使用time()必須使用該頭文件
#include<stdio.h>
intmain()
{
charin;
//出錯,產生的隨機數永遠一樣。
srand((int)time(NULL));//移到循環的外面
inta=1;

do{
intuser;//定義玩家和電腦出拳
intuwin,ulos,allwin;//定義玩家的勝利參數,失敗參數,平局參數
intcwin,clos,loop;//定義電腦的勝利參數和失敗參數,不需要定義平局參數,可以直接取用allwin
intcomputer=0;
uwin=0;
ulos=0;
allwin=0;
cwin=0;
clos=0;
computer=rand()%3+1;//隨機產生1-3任意一個整數,rand()%3是隨機產生0-2之間的整數(包含0但不包含3)

printf(" 【第%d局】 請出拳:",a);
a++;
scanf("%d",&user);
printf("這一局,您出的是【%d】,電腦出的是【%d】! ",user,computer);
switch(user)
{
case1:
if(computer==1)
{
printf("這一局,您出的是【石頭】,電腦出的是【石頭】,好巧哦,是平局耶! ");
allwin+=1;
}
}
}while(1);
}

『捌』 C語言中的rand()函數怎麼用

rand()

rand()函數用來產生隨機數,但是,rand()的內部實現是用線性同餘法實現的,是偽隨機數,由於周期較長,因此在一定范圍內可以看成是隨機的。

rand()會返回一個范圍在0到RAND_MAX(至少是32767)之間的偽隨機數(整數)。

在調用rand()函數之前,可以使用srand()函數設置隨機數種子,如果沒有設置隨機數種子,rand()函數在調用時,自動設計隨機數種子為1。隨機種子相同,每次產生的隨機數也會相同。

rand()函數需要的頭文件是:<stdlib.h>

rand()函數原型:int rand(void);

使用rand()函數產生1-100以內的隨機整數:int number1 = rand() % 100+1。

srand()

srand()函數需要的頭文件仍然是:<stdlib.h>

srand()函數原型:void srand (usigned int seed);

srand()用來設置rand()產生隨機數時的隨機數種子。參數seed是整數,通常可以利用time(0)或getpid(0)的返回值作為seed。

使用rand()和srand()產生1-100以內的隨機整數:

srand(time(0));

int number1 = rand() % 100+1。

『玖』 C語言srand和rand函數

rand()函數,一般根srand()函數一起用。它們在一起,作用是:產生一個隨機數。
通常格式為:
srand
(
(unsigned)
time
(NULL)
);
a=rand()%x;
//a,x,均為整型變數,其中,x在之前應被賦值。
srand函數裡面的unsigned也可以換成其它的。例如:int之類的數據類型,但結果也會有相應的變化。
通過rand函數產生隨機數以後,用%x來限定它的范圍。即:0<=a
評論
0
0
載入更多

『拾』 什麼是c語言中rand函數

函數rand()是隨機數生成器
有兩個函數用於產生隨機數:srand()和rand()。
函數一:int
rand(void);從srand
(seed)中指定的seed開始,返回一個[0,
RAND_MAX(0x7fff)]間的隨機整數。
函數二:void
srand(unsigned
seed);參數seed是rand()的種子,用來初始化rand()的起始值。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:515
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:19
linux485 發布:2025-07-05 14:38:28 瀏覽:299
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:750
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:425
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:684
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:233
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:678
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:277
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:828