c語言rand函數怎麼用
㈠ rand函數怎麼用
rand函數的用法有以下幾種:
1、基本用法:在Excel中,直接在單元格輸入=RAND(),就會得到大於等於0,小於1的隨機數。
2、生成A與B之間的隨機數字(A≤隨機數<B):在第一個格子中輸入=RAND()*(B-A)+A。如,生成1到10之間的隨機數字,輸入:=RAND()*9+1。其餘數字,將滑鼠置於該格子右下角,變為十字時,向下拖拉即可。
3、生成A與B之間的隨機整數(A≤隨機數<B):在第一個格子中輸入:=INT(RAND()*(B-A)+A)。如,生成1到10之間的隨機整數,輸入:=INT(RAND()*9+1)。其餘數字,將滑鼠置於該格子右下角,變為十字時,向下拖拉即可。
4、生成A與B之間的隨機數字(A≤隨機數≤B):在第一個格子中輸入:=RAND()*(B-A+1)+A。如,生成1到100的隨機數字,輸入:=RAND()*100+1。
但這個公式會出現大於B的數字,例如生成-12到12的隨機數,例如公式=RAND()%(12+12+1)-12,當RAND生成為0.99的數值時,就會產生12.75的數字。
5、生成A與B之間的隨機整數(A≤隨機數≤B)。在第一個格子中輸入:=INT(RAND()*(B-A+1)+A。如,生成1到100的隨機整數,輸入:= INT(RAND()*100)+1其餘數字,將滑鼠置於該格子右下角,變為十字時,向下拖拉即可。
㈡ c語言中rand函數的使用方法
它的返回值就是求取隨機的值,所以如果沒有對數有要求,直接這樣定:
printf("%d", rand());就能輸出一個隨機數.但如果對數有要求,如小數或在一定值以內:
小數:rand()+rand()/100.0 //100.0後面的.0必須寫,100是說明求兩位小數,你可以自己加大.
一定范圍:rand()%10+0 //10是頂和底的差,0是底,就是說求10到20之間的數就是:rand()%10+10
但是調用它必須先調用srand()來生成隨機種子,如果你沒調用它,系統會自動調用.但是srand是有個參數的,種子就是根據這個參數來定的,所以這個參數決定著生成的隨機數.如果你在代碼里寫死了它:srand(10);那這樣rand生成的隨機數就也被定格在了一定量,所以不要這樣用.要這樣寫:
srand(time(NULL));time的返回值是當前系統時間.因為時間不同,所取的數值也就不同.這樣隨機數就真正的隨機了.
time在中聲明
rand,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隨機函數隨機產生一個字母
rand()生成的結果是一個整數,如果想得到字元(字母),則需要控製得到的數據在'a' - 'z'的ascii值之間的數據,給你一個生成大寫字母的
int getRandChar()
{
int ch;
srand(time(NULL));
ch=rand()%26; //生成0-25的值
ch += 'A' ; //可得到一個隨機字母
return ch ;
}
㈤ c語言中rand函數怎麼用
下圖是產生100個0~100之間隨機整數的程序和運行實況:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{ int i,n,a[100];
srand(time(0));
for(i=0; i<100; i++)
{ a[i]=rand()%101;
printf("%4d",a[i]);
}
return 0;
}
㈥ 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語言rand()函數的用法
你少了1。
這個公式是a+(b-a+1)*rand()/(RAND-MAX+1.0)
這里可以簡化,公式是a+rand%(b-a+1)
所以你寫得有點雜正確的是,-100+rand%201或-100+201*rand()/(RAND-MAX+1.0)
㈧ 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語言裡面的隨機數產生函數random怎麼用
rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種了,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了 srand()函數,它的原形是void srand( int a).
初始化隨機產生器既rand()函數的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數,我們是可以產生可以預見的隨機序列,那我們如何才能產生不可預見的隨機序列呢?我們可能常常需要這樣的隨機序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的.
下面講一講在C語言里所提供的隨機數發生器的用法。現在的C編譯器都提供了一個基於ANSI標準的偽隨機數發生器函數,用來生成隨機數。它們就是rand()和srand()函數。這二個函數的工作過程如下:
1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;
2) 然後調用rand(),它會根據提供給srand()的種子值返回一個隨機數(在0到32767之間)
3) 根據需要多次調用rand(),從而不間斷地得到新的隨機數;
4) 無論什麼時候,都可以給srand()提供一個新的種子,從而進一步「隨機化」rand()的輸出結果。
以下是一個產生隨機數的例子:
需要首先使用隨機數「種子」初始化,srand函數:
#include<stdlib.h>
#include<stdio.h>
#include<time.h>//使用當前時鍾做種子
voidmain(void)
{
inti;
srand((unsigned)time(NULL));//初始化隨機數
/*列印10個隨機數.*/
for(i=0;i<10;i++)
printf("%d ",rand());
}
#include<stdlib.h>
#include<time.h>
main
{
inti;
srand(time(0));//初始化隨機種子
i=rand();//產生隨機數
}
首先,加一個"#include<stdlib.h>
然後設一個變數,如j,j=rand(),就可以給j賦一個1~32767的隨機數,如果要獲得一個隨機函數的十位(其它類似),只需令j=j%10就行.
添加頭文件 #include<time.h>
然後在文件中添加 srand((unsigned)time(NULL));
srand()是用來初始化隨機種子數的,因為rand的內部實現是用線性同餘法做的,它不是真的隨機數,只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的.
上面是有個隨機種子的說明及方法,為了避免重復.然後再 用 隨機函數,rand() 就行了.
頭文件是 stdlib.h
random() 產生隨機數為 0或1
random(n) 產生隨機數為 0到n之間的一個隨機數
rand() 產生 0到32768之間的一個隨機數
函數名: randomize
功 能: 初始化隨機數發生器
用 法: void randomize(void);
程序例:
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
intmain(void)
{
inti;
randomize();
printf("Tenrandomnumbersfrom0to99 ");
for(i=0;i<10;i++)
printf("%d ",rand()%100);
return0;
}
㈩ C中,rand()是什麼意思,有什麼作用
rand()是表示產生隨機數的一種函數,多應用於循環語句當中進行判斷。
比如說n=rand();
switch(n)
{case1.......
case2......}
這些都是都可能被執行的,因為數字是隨機的。
(10)c語言rand函數怎麼用擴展閱讀:
注意
rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種了,為基準以某個遞推公式推算出來的一系數,
當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了 srand()函數,它的原形是void srand( int a) ,
功能是初始化隨機產生器既rand()函數的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數,可以產生可以預見的隨機序列。