當前位置:生活全書館 >

IT科技

> rand函式的使用方法是什麼

rand函式的使用方法是什麼

用c語言產生隨機數rand()     在C語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的

在excel中rand函式的使用方法,步驟加圖

方法

選中單元格,往裡輸入“=rand()”

Rnd(number) 返回一個Single型別的隨機數,小於 1 但大於或等於 0 的值 如果 number 的值 小於 0 每次都得到相同的隨機數。 大於 0 或省略 產生下一個隨機數。 等於 0 返回最近一次生成的隨機數。 使用之前最好使用Randomize 例如產生N到M的隨機

rand函式的使用方法是什麼

輸入後按回車

這個我用過,我知道: rand()是一個可以生成隨機數的函式隨機數,函式返回的隨機數在0-RAND_MAX(32767)之間; rand()%100結果是隨機數除以100後所得的餘數,即限定隨機的範圍是在0~99之間; 使用rand()函式需新增標頭檔案:#include 你的二維陣列可

rand函式的使用方法是什麼 第2張

向右向下複製填充公式,就會得到一系列大於等於0小於1的隨機數

要先設定種子,編譯器裡如果不設定種子,種子會預設為0,那麼每次執行的隨即數都一樣的。用time函式來改變種子,就可以很好的體現出“真正的隨即”了。 完整程式碼: 例子: #include #include #include main(){ int i,a[10]; srand(time(0)); for(i

rand函式的使用方法是什麼 第3張

若需要0-5之間的隨機數,就要把rand函式返回數值擴大5倍即可。

rand(產生隨機數) 表頭檔案: #include 定義函式 :int rand(void) 函式說明 : 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand()會返回一隨機數值,範圍在0至RAND

如圖,錄入公式=rand()*5

rand函式 函式標頭檔案:stdlib.h 函式定義:int rand(void) 函式功能:產生一個隨機數 函式說明: rand函式產生的隨機數嚴格意義講不是真正的隨機數,它裡面採用了線性同餘法計算出隨機數,所謂的線性同語法簡單來說就是使用了一個公式。 該方法

rand函式的使用方法是什麼 第4張

輸入後按回車

這個我用過,我知道: rand()是一個可以生成隨機數的函式隨機數,函式返回的隨機數在0-RAND_MAX(32767)之間; rand()%100結果是隨機數除以100後所得的餘數,即限定隨機的範圍是在0~99之間; 使用rand()函式需新增標頭檔案:#include 你的二維陣列可

rand函式的使用方法是什麼 第5張

並把函式向下向右複製填充,就得到0-5之間的隨機實數了。

方法/步驟 如何更改RAND函式輸出值的範圍。 通常情況下,RAND函式輸出結果在0~1之間,如果我們想輸入10~100之間的資料,該怎麼辦?其實我們只需要給RAND函式擴大1000倍即可。如圖: 有時,我們更希望RAND輸出的結果只保留幾位數,對此,我們可以

rand函式的使用方法是什麼 第6張

擴充套件閱讀,以下內容您可能還感興趣。

c語言rand函式的使用

你好!!

    srand((int)time(NULL));// 移到迴圈的外面

    增加了每次出拳的顯示,便於檢視

    增加了局數的顯示#include<stdlib.h>//為了使用srand、rand函式必須使用該標頭檔案

#include<time.h>//要使用time()必須使用該標頭檔案 

#include<stdio.h>

int main()

{

char in;

//出錯,產生的隨機數永遠一樣。 

srand((int)time(NULL));// 移到迴圈的外面

int a=1; 

do{

int user;            //定義玩家和電腦出拳 

int uwin,ulos,allwin;//定義玩家的勝利引數,失敗引數,平局引數 

int cwin,clos,loop;  //定義電腦的勝利引數和失敗引數,不需要定義平局引數,可以直接取用allwin 

int computer=0;

uwin=0;

ulos=0;

allwin=0;

cwin=0;

clos=0;

computer = rand()%3+1;    //隨機產生1-3任意一個整數,rand()%3是隨機產生0-2之間的整數(包含0但不包含3)

printf("n【第 %d 局】n 請出拳:",a);

a++;

scanf("%d",&user);

printf("這一局,您出的是【%d】,電腦出的是【%d】!n",user,computer);

switch(user)

{

case 1:

if(computer==1)

{

printf("這一局,您出的是【石頭】,電腦出的是【石頭】,好巧哦,是平局耶!n");

allwin+=1; 

}

}

}while(1);

}

rand()函式如何使用

srand函式是隨機數發生器的初始化函式,原型:

void srand(unsigned seed);

它需要提供一個種子,如:

srand(1);

直接使用1來初始化種子。

不過常常使用系統時間來初始化,即使用

time函式來獲得系統時間,它的返回值為從 00:00:00 GMT, January 1, 1970

到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型在傳給srand函式,即:

srand((unsigned) time(&t));

還有一個經常用法,不需要定義time_t型t變數,即:

srand((unsigned) time(NULL));

直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。

srand((int)getpid());

使用程式的ID(getpid())來作為初始化種子,在同一個程式中這個種子是固定的

隨機輸出十個0-100之間的整數

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

void main( void )

{

int i,k;

srand( (unsigned)time( NULL ) );

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

{

k=rand()%100;

printf( " k=%d\n", k );

}

}

參考資料:http://baike.baidu.com/view/1458234.html?wtp=tt

C++ rand函式怎麼用,標頭檔案應包括什麼

使用rand函式時標頭檔案應該包括stdlib.h,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。

擴充套件資料:

使用rand()和srand()產生指定範圍內的隨機整數的方法,“模除+加法”的方法因為,對於任意數,0<=rand()%(n-m+1)<=n-m,因此,0+m<=rand()%(n-m+1)+m<=n-m+m,因此,如要產生[m,n]範圍內的隨機數num,可用:

int num=rand()%(n-m+1)+m。其中的rand()%(n-m+1)+m算是一個公式,記錄一下方便以後查閱。比如產生10~30的隨機整數:srand(time(0)),int a = rand() % (21)+10。

vb中,rand()函式什麼意思?

Rand(number) 返回一個Single型別的隨機數,小於 1 但大於或等於 0 的值.

如果 number 的值 小於 0 每次都得到相同的隨機數。 大於 0 或省略 產生下一個隨機數。 等於 0 返回最近一次生成的隨機數。

使用之前最好使用Randomize 例如產生N到M的隨機數,Int(Rand()*M-N+1)+N

vb6.0中沒有Rand函式,如寫Rand(3)就會出錯。

Rand()函式只產生1到10單不包括0和1的隨機數預設為單精度數0.0000001—0.9999999(開區間(0,1))。

要產生1-10的隨機小數時:

只能不包括1和10:rand*9+1(即1.0000001—9.9999999之間,開區間(1,10))

要是產生1-10的隨機整數時:

不包括1和10:int(rand*8)+2(即2—9之間的整數)

包括1和10時:int(rand*10)+1(即1—10之間的整數)

Rand函式和srand函式在keil中怎麼用,能給我舉個例子嗎

srand((unsigned)time(NULL))則使用系統定時/計數器的值作為隨機種子。每個種子對應一組根據演算法預先生成的隨機數,所以,在相同的平臺環境下,不同時間產生的隨機數會是不同的,相應的,若將srand(unsigned)time(NULL)改為srand(TP)(TP為任一常量),則無論何時執行、執行多少次得到的“隨機數”都會是一組固定的序列,因此srand生成的隨機數是偽隨機數。[1]

庫函式中系統提供了兩個函式用於產生隨機數:srand()和rand()。 原型為:

函式一:int rand(void);

返回一個[0,RAND_MAX]間的隨機整數。

函式二:void srand(unsigned seed);

引數seed是rand()的種子,用來初始化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)

另外,關於time_t time(0):time_t被定義為長整型,它返回從1970年1月1日零時零分零秒到目前為止所經過的時間,單位為秒。

srand()、rand()用法舉例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include<time.h>

#include<stdlib.h>

#include<stdio.h>

voidmain()

{

inti,j;

srand((int)time(0));

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

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf("%d",j);

}

}

標籤: rand 函式
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/gqw1ww.html