rand隨機函式產生的值的範圍rand是如何確定要產生的隨機數的範圍的?例如rand20它產生的隨機數的範圍?

2021-03-19 18:36:49 字數 3260 閱讀 7560

1樓:匿名使用者

cplusplus中有這樣的介紹:

rand函式產生一個0到rand_max的偽隨機數,這裡的rand_max因不同的實現而異,但rand_max至少為32767。(比如,msvc中通常為0x7fff,即32767,而linux平臺下gcc中rand_max通常會遠遠大於這個值)

有一些其他程式語言的rand函式確實是產生一個[0.0, 1.0)之間的浮點數。比如matlab。

在c中,

rand() % 32會產生一個[0, 32)之間的偽隨機數,那麼rand() % 32 + 1的取值區間實際上是[1, 33)。

要產生[0, 32)(開區間)之間偽隨機數:

rand() % 32即可;

要產生[0, 32](閉區間)之間偽隨機數:

rand() % 33即可。

2樓:好嘞啊啊啊啊

看返回值的型別

unsigned int

雙位元組是65535,

四位元組是4294967295的整數範圍。

rand()函式是一個有返回值的函式

rand()%32 是0-31

如果加一的話

就是1-32

3樓:

0~32767。

產生0-32之間的某個隨機數的**是rand()%33,不是rand()%32+1。rand()%32+1產生1~32之間的隨機數!

4樓:匿名使用者

看函式原型: int rand(void),可見其返回的是一個32位的數,準確的來說是無符號的

範圍為 0~4g-1。要想取得某一範圍的值用取餘的方式再加一個基值即可。

5樓:匿名使用者

mayadong7349說的是正解,我就是來支援正解的不要採納我

6樓:

產生0-32之間的隨機數是有這些方法:

rand()%32+0

rand()%(32-0+1)+0

rand()%33

7樓:

win下是16位,linux下是32位。

具體說就是0~2^15-1,0~2^31-1。

8樓:匿名使用者

srand((int)time(0));

1 + 100*rand() % 32

rand()是如何確定要產生的隨機數的範圍的?例如:rand()%20;它產生的隨機數的範圍?

9樓:59分粑粑

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

在c語言中,可以使用rand()函式生成隨機數,但這並不是真正意義上的隨機數。 這是一個偽隨機數,其基於數,可以稱為種子。

作為基準,由遞迴公式計算得出的係數,當這一系列數字很大時,就符合正態公佈,等效於生成一個隨機數。

10樓:匿名使用者

需要考察rand()的返回值範圍,如果是0~rand_max之間,則rand%20產生的是0~19的隨機數

如果rand()返回的是0~1之間的小數,那麼另有演算法。

11樓:匿名使用者

rand()%20 一個數mod20只能是0-19之間

想產生1-20 可以rand()%20+1

10-20可以 rand()%10+11

12樓:防禦

一般都這麼寫rand()%(y-x+1)+x

13樓:匿名使用者

rand()%n返回的一般都是0-n-1的整數。

c++問題 rand() 預設產生的隨機數範圍

14樓:匿名使用者

隨機數bai產生的範圍是:0-0x7fff(也就du是0到32767)

#include

#include

#include

#include

using namespace std;

void main()

{ srand( (unsigned)time( null ) ); //時間參zhi數作為種子

for(int i=0;i<32767;i++){ cout<

時間引數種dao子唯一,版然後取的數目不大於權32767個,基本能夠保證產生的隨機數唯一

15樓:匿名使用者

rand()函式可以用來產生隨機數;

rand()會返回一隨機數值,範圍在0至版rand_max 間。返回0至rand_max之間的權隨機數值,rand_max定義在stdlib.h,(其值至少為32767),運算的結果是一個不定的數,要看你定義的變數型別,int整形的話就是32767。

在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。一般用for語句來設定種子的個數。

16樓:二十年

0到rand_max,rand_max的值視編譯bai器而定du一般不小於32767,你可以zhi測試dao一下。可以用當前時間做專隨機數的種子保證產生的值不屬同。在程式開始之前呼叫srand((unsigned)time(null));就行了。

rand產生的隨機數是什麼型別

17樓:匿名使用者

函式原型:int rand(void);

所以返回值為int型

返回的隨機數範圍是0~rand_max

18樓:宛丘山人

數值型別,歲語言不同而不同,又多是整形,有的是實型

19樓:

int型別 c語言中的一種下整數型別

20樓:匿名使用者

int or unsigned int

rand()隨機函式產生的值的範圍?

21樓:好嘞啊啊啊啊

看返回值的型別

unsigned int

雙位元組是65535,

四位元組是4294967295的整數範圍。

rand()函式是一個有返回值的函式

rand()%32 是0-31

如果加一的話

就是1-32

如何用rand函式產生隨機數,如何用rand函式產生一個隨機數

rand 函式是產生隨機數的一個隨機函式。注意 1 使用該函式首先應在開頭包含標頭檔案stdlib.h include c 建議使用 include,下同 2 在標準的c庫中函式rand 可以生成0 rand max之間的一個隨機數,其中rand max 是stdlib.h 中定義的一個整數,它與系...

自己做隨機函式,如何產生真正的隨機函式?

在計算機中並沒有一個真正的隨機數發生器,但是可以做到使產生的數字重複率很低,這樣看起來好象是真正的隨機數,實現這一功能的程式叫偽隨機數發生器。有關如何產生隨機數的理論有許多,如果要詳細地討論,需要厚厚的一本書的篇幅。不管用什麼方法實現隨機數發生器,都必須給它提供一個名為 種子 的初始值。而且這個值最...

寫函式,對用隨機函式產生的整數按從小到大的順序排序

voidselect sort int a,intn registerinti,j,min,t for i 0 i查詢最小值 程式如下 include include include void main for t 0 t 49 t for i t 1 i 50 i if a t a i for i...