用rand隨機函式怎麼求指定範圍的隨機數

時間 2021-09-10 18:22:30

1樓:a羅網天下

在excel中使用函式rand()*(最大值-最小值)+最小值即可得到5-18範圍內的隨機數了,如下圖操作所示:

1、在任一excel單元格數輸入「=rand()*(18-5)+5」;

2、輸入完成後按回車,即可得到5-18間的隨機數

3、選擇生成的隨機數,進行填充後就可以很多5-18之間的隨機數,如下圖所示:

擴充套件資料

srand((unsigned)time(null))則使用系統定時/計數器的值作為隨機種子。每個種子對應一組根據演算法預先生成的隨機數。

所以在相同的平台環境下,不同時間產生的隨機數會是不同的,相應的,若將srand(unsigned)time(null)改為srand(tp)(tp為任一常量),則無論何時執行、執行多少次得到的「隨機數」都會是一組固定的序列,因此srand生成的隨機數是偽隨機數。

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

函式一:int rand(void);

返回乙個[0,rand_max]間的隨機整數。

函式二:void srand(unsigned seed);

引數seed是srand()的種子,用來初始化srand()的起始值。

2樓:匿名使用者

最具效率的數學方法:rand()%14+5; //rand【5,18】

下面是取意範圍隨機整數的公式:

rand()%(max-min+1) +min // 隨機區間[min,max]

隨機區間[5,18]

=rand()%(18-5+1) +5

=rand()%14+5

3樓:匿名使用者

boolean flag = true;

while(flag)

4樓:匿名使用者

像你說的取5-18範圍,則rand()%13+5即可

excel怎麼在某一範圍內生成隨機數?

5樓:低調額低調額

1、excel中可以利用randbetween函式生成指定範圍內的隨機整數,如下圖所示,在b1:b4中生成1到100內的隨機數字,選擇區域,輸入公式如下:

2、按下ctrl+enter結束輸入,得到隨機數字如下所示:

3、按下f9,隨機數字會重新整理,如下圖所示:

4、如果要生成隨機小數,可以考慮在randbetween後面除以10的倍數,如下圖所示生成10到100之間的包含兩位小數的隨機數字:

5、得到結果如下圖所示,f9可以重新整理數字:

擴充套件資料

6樓:匿名使用者

excel隨機數函式

7樓:solo獨行者

那個標準答案不夠6,我來個通用的方法,大家可以舉一反三

其實關鍵就是乙個rand()函式,用它生成0-1的隨機數(帶小數),然後就可以起飛了:

比如要0-5之間的隨機數,那就是=rand()*5,要0-10就是=rand()*10;

要1-5,那就再加乙個加法,=rand()*4+1,要1-10就=rand()*9+1;

如果要求是整數,其實可以不用randbetween,用round(rand(),0),比如整數1-5,可以=round(rand()*4+1,0)

下面有個人希望得到正5到正10以及負5到負10的,也有辦法,可以=round((randbetween(1,2)*2-3)*(rand()*5+5),0)(我直接從我excel裡複製的,所以就大寫了,excel不區分函式的大小寫)

8樓:匿名使用者

=rand()

生成0-1之間的隨機數(小數,包含0不包含1)=randbetween(1,10)

生成1-10之間(包含1和10,數字可以自己修改為自己要的範圍)的隨機數(整數)。

拓展思路:

=rand()*100 大於等於0但小於100的乙個隨機數(帶小數)

9樓:難堪

開啟excel,在excel單元格類輸入函式=rand(),按enter鍵後,就得到0-1之間的乙個隨機數。

在excel單元格類輸入函式=randbetween(),填入區間上下限,例如1-100,按enter鍵後,就得到,1-100之間的乙個隨機數。

10樓:本本經銷商

可以直接使用randbetween函式生成一定範圍內的隨機數。

可以使用rand函結合其他函式來生成一定範圍內的隨機數。

randbetween【語法】

randbetween(bottom,top)

bottom引數: randbetween將返回的最小整數。

top引數: randbetween將返回的最大整數。

示例:=randbetween(1,100)

大於等於1小於等於100的乙個隨機整數(變數)

=randbetween(-1,1)

大於等於-1小於等於1的乙個隨機整數(變數)

注意:randbetween函式只會生成隨機整數。如需要隨機小數可結合rand函式來使用。

2003版以上的excel中,直接在單元格輸入=rand()

得到大於等於0,小於1的隨機數

其他生成方法示例:

生成a與b之間的隨機數字(a≤隨機數在第乙個格仔中輸入:=rand()*(b-a)+a

如,生成1到10之間的隨機數字,輸入:=rand()*9+1

其餘數字,將滑鼠置於該格仔右下角,變為十字時,向下拖拉即可。

生成a與b之間的隨機整數(a≤隨機數在第乙個格仔中輸入:=int(rand()*(b-a)+a)

如,生成1到10之間的隨機整數,輸入:=int(rand()*9+1)

其餘數字,將滑鼠置於該格仔右下角,變為十字時,向下拖拉即可。

生成a與b之間的隨機數字(a≤隨機數≤b)

在第乙個格仔中輸入:=rand()*(b-a+1)+a

如,生成1到100的隨機數字,輸入:=rand()*100+1

11樓:匿名使用者

產生-10到5之間的整數:=randbetween(-10,5) 產生-10到5之間的任意實數:=15*rand()-10

12樓:匿名使用者

就是專業帶出問題,裡邊是是指代數生成了基礎。

13樓:匿名使用者

兄弟:非常簡單用到rnd函式留下郵箱發給你可用vba編寫或直接資料rnd函式.

14樓:溜到被人舔

其實關鍵就是乙個rand()函式,用它生成0-1的隨機數(帶小數),然後就可以起飛了:

比如要0-5之間的隨機數,那就是=rand()*5,要0-10就是=rand()*10;

要1-5,那就再加乙個加法,=rand()*4+1,要1-10就=rand()*9+1;

如果要求是整數,其實可以不用randbetween,用round(rand(),0),比如整數1-5,可以=round(rand()*4+1,0)

下面有個人希望得到正5到正10以及負5到負10的,也有辦法,可以=round((randbetween(1,2)*2-3)*(rand()*5+5),0)(我直接從我excel裡複製的,所以就大寫了,excel不區分函式的大小寫)

c語言怎樣產生一定範圍的隨機數?

15樓:hk_孤獨的心

編譯環境為:vs2013

產生1到3的整型隨機數的**如下:

#include

#include

#include

#define max 3   //這個函式的意義為:隨機生成最大的數為3

#define min 1    //這個函式的意義為:隨機生成最小的數為1

int main()

16樓:愛夏的你呀

在c語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,

是乙個偽隨機數,是根據乙個數,可以稱它為種子。

為基準以某個遞推公式推算出來的一係數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數。

c語言產生一定範圍的隨機數的源**如下:

#include

#include

int main()

return 0;

}擴充套件資料

1、如果要隨機生成乙個在一定範圍的數,你可以在巨集定義中定義乙個random(int number)函式,然後在main()裡面直接呼叫random()函式。

2、在對rand()的前三次呼叫中,並且此後得到的返回值仍然是在對rand()的第一批呼叫中所得到的其餘的返回值。因此,只有再次給srand()提供乙個隨機的「種子」值,才能再次得到乙個隨機數。

17樓:匿名使用者

c語言的獲取隨

機數的函式為rand(), 可以獲得乙個非負整數的隨機數。要呼叫rand需要引用標頭檔案stdlib.h。

要讓隨機數限定在乙個範圍,可以採用模除加加法的方式。

要產生隨機數r, 其範圍為 m<=r<=n,可以使用如下公式:

rand()%(n-m+1)+m

其原理為,對於任意數,

0<=rand()%(n-m+1)<=n-m於是0+m<=rand()%(n-m+1)+m<=n-m+m即m<=rand()%(n-m+1)+m<=n

18樓:哇哎西西

利用srand((unsigned int)(time(null))是一種方法,因為每一次執行程式的時間是不同的。

在c語言裡所提供的隨機數發生器的用法:現在的c編譯器都提供了乙個基於ansi標準的偽隨機數發生器函式,用來生成隨機數。它們就是rand()和srand()函式。

這二個函式的工作過程如下:

1) 首先給srand()提供乙個種子,它是乙個unsigned int型別,其取值範圍從0~65535;

2) 然後呼叫rand(),它會根據提供給srand()的種子值返回乙個隨機數(在0到32767之間)

3) 根據需要多次呼叫rand(),從而不間斷地得到新的隨機數;

4) 無論什麼時候,都可以給srand()提供乙個新的種子,從而進一步「隨機化」rand()的輸出結果。

下面是0~32767之間的隨機數程式:

#include

#include

#include // 使用當前時鐘做種子

void main(void)

根據上面的程式可以很容易得到0~1之間的隨機數:

#include

#include

#include

int main( )

而產生1~100之間的隨機數可以這樣寫:

#include

#include

#include

int main( )

19樓:溫柔_儂渲芷

srand((int)time(null));設定隨機數種子

rand()%100;產生0-99的隨機數。高階點的,假如要產生16-59之間的數,你可以這樣寫:rand()%44+16(這裡44由59-16+1得到)。其他情況如法炮製!

下面是搜回來的:

問題1: 怎樣獲得乙個真正的隨機數?要知道,rand()是不能產生真正的隨機數的!即使不能產生真正的隨機數,也要大概接近呀!而rand()好象每次的隨機都一樣。

專家解答:

之所以rand()每次的隨機數都一樣是因為rand()函式使用不正確。各種程式語言返回的隨機數(確切地說是偽隨機數)實際上都是根據遞推公式計算的一組數值,當序列足夠長,這組數值近似滿足均勻分布。如果計算偽隨機序列的初始數值(稱為種子)相同,則計算出來的偽隨機序列就是完全相同的。

這個特性被有的軟體利用於加密和解密。加密時,可以用某個種子數生成乙個偽隨機序列並對資料進行處理;解密時,再利用種子數生成乙個偽隨機序列並對加密資料進行還原。這樣,對於不知道種子數的人要想解密就需要多費些事了。

當然,這種完全相同的序列對於你來說是非常糟糕的。要解決這個問題,需要在每次產生隨機序列前,先指定不同的種子,這樣計算出來的隨機序列就不會完全相同了。你可以在呼叫rand()函式之前呼叫srand( (unsigned)time( null ) ),這樣以time函式值(即當前時間)作為種子數,因為兩次呼叫rand函式的時間通常是不同的,這樣就可以保證隨機性了。

你也可以使用srand函式來人為指定種子數。windows 9x/nt的遊戲freecell就允許使用者指定種子數,這樣使用者如果一次遊戲沒有成功,下次還可以以同樣的發牌結果再玩一次。

問題2: 我按照上述方法並不能產生隨機數,僅產生公差為3或4的等差數列:

請採納答案,支援我一下。

excel隨機函式rand怎麼用

步驟如下 1.選擇單元格,並輸入 rand 2.就可以看到單元格出現隨機數了。3.按f9可重新生產隨機數。隨機數字。1 生成隨機數比較簡單,rand 即可生成0 rand max之間的隨機數 define rand max 0x7fffu 2 如果要是整數,就用 int rand 10 表示0至9的...

怎麼使用rand函式產生隨機的四位數,並且要求,這個四位數的各位數字均不相同

可以使用rand函式生成四個數,要求它們都在0 9之間,並且,生成第二個數時候,要檢查是否與第乙個數重複,否則重新生成。同理,生成第三個數時候,要檢查是否與前兩個數有重複,生成第四個數時候,要檢查是否與前三個數有重複。最後,第乙個數 1000 第二個數 100 第三個數 10 第四個數構成乙個四位數...

在excel中怎麼讓隨機函式在指定區域內取不重複的值

1 如果指定區域為a2 f8,需要在a11 f17得到a2 f8的不重複的隨機資料,那麼以h2 m8為輔助區域,輸入 rand 按ctrl enter組合鍵結束,得到一組隨機數 2 在a11單元格輸入以下公式,然後向右向下填充到f17單元格 index a 2 f 8,sumproduct smal...