rand函式的使用方法是什麼
- IT科技
- 關注:2.97W次
用c語言產生隨機數rand() 在C語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的
在excel中rand函式的使用方法,步驟加圖
方法
選中單元格,往裡輸入“=rand()”
Rnd(number) 返回一個Single型別的隨機數,小於 1 但大於或等於 0 的值 如果 number 的值 小於 0 每次都得到相同的隨機數。 大於 0 或省略 產生下一個隨機數。 等於 0 返回最近一次生成的隨機數。 使用之前最好使用Randomize 例如產生N到M的隨機
輸入後按回車
這個我用過,我知道: rand()是一個可以生成隨機數的函式隨機數,函式返回的隨機數在0-RAND_MAX(32767)之間; rand()%100結果是隨機數除以100後所得的餘數,即限定隨機的範圍是在0~99之間; 使用rand()函式需新增標頭檔案:#include 你的二維陣列可
向右向下複製填充公式,就會得到一系列大於等於0小於1的隨機數
要先設定種子,編譯器裡如果不設定種子,種子會預設為0,那麼每次執行的隨即數都一樣的。用time函式來改變種子,就可以很好的體現出“真正的隨即”了。 完整程式碼: 例子: #include #include #include main(){ int i,a[10]; srand(time(0)); for(i
若需要0-5之間的隨機數,就要把rand函式返回數值擴大5倍即可。
rand(產生隨機數) 表頭檔案: #include 定義函式 :int rand(void) 函式說明 : 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand()會返回一隨機數值,範圍在0至RAND
如圖,錄入公式=rand()*5
rand函式 函式標頭檔案:stdlib.h 函式定義:int rand(void) 函式功能:產生一個隨機數 函式說明: rand函式產生的隨機數嚴格意義講不是真正的隨機數,它裡面採用了線性同餘法計算出隨機數,所謂的線性同語法簡單來說就是使用了一個公式。 該方法
輸入後按回車
這個我用過,我知道: rand()是一個可以生成隨機數的函式隨機數,函式返回的隨機數在0-RAND_MAX(32767)之間; rand()%100結果是隨機數除以100後所得的餘數,即限定隨機的範圍是在0~99之間; 使用rand()函式需新增標頭檔案:#include 你的二維陣列可
並把函式向下向右複製填充,就得到0-5之間的隨機實數了。
方法/步驟 如何更改RAND函式輸出值的範圍。 通常情況下,RAND函式輸出結果在0~1之間,如果我們想輸入10~100之間的資料,該怎麼辦?其實我們只需要給RAND函式擴大1000倍即可。如圖: 有時,我們更希望RAND輸出的結果只保留幾位數,對此,我們可以
擴充套件閱讀,以下內容您可能還感興趣。
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);
}
}
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/gqw1ww.html