挑戰演算法可以用rand產生隨機數嗎

2021-05-18 17:58:54 字數 3052 閱讀 5427

1樓:可以叫我表哥

我看了下網上,是這樣的:rand()隨機產生一個數(0-65535),加上%後,就是對其它數求餘,求餘產生的數取內決於求餘的數。

比如,rand()%20;

意思是利用rand()的返回值(一個0-65535之間的數)對20求餘,求餘的結果就是0-19。也就是0~(20-1)之間。

如果我們要產生10~20之間的隨容機數,可以rand()%((20-10)+1)+10

含義是,20-10是產生0~9,((20-10)+1)是產生0~10,在這個基礎上。再加10,就是10~20

2樓:阡陌她人只為你

可以啊 srand給種子,rand產生隨即說。。

3樓:匿名使用者

rand

不就是用來產生隨機數的嗎?

真的有能產生完全隨機數的演算法嗎?

4樓:匿名使用者

計算機本來就沒辦法實現真正的隨機,它本來就是按邏輯來執行的,產生的所謂隨機數全部都是偽隨機,最多隻能做到範圍足夠大,產生規律足夠複雜,感覺像是隨機而已。

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

5樓:匿名使用者

如果需要在數值a-b之間隨即產生一個數,如下操作:

單元格中輸入函式

=round(rand()*(c+a),3) 函式解釋:在a-b區間範圍內隨即產生一個數,小數點後保留3位!

其中的=rand()*(c+a) 函式解釋:以a為起點,步長為c 在a-b中隨即產生一個數。

備註: c 為步長,也就是所取點的範圍長度。在這裡應該是c=b-a=round(#,3) 函式解釋:數值#小數點後取3位.

6樓:匿名使用者

rand()函式是產生隨機數的一個隨機函式。

注意:(1)使用該函式首先應在開頭包含標頭檔案stdlib.h

#include(c++建議使用#include,下同)

(2)在標準的c庫中函式rand()可以生成0~rand_max之間的一個隨機數,其中rand_max 是stdlib.h 中定義的一個整數,它與系統有關。

(3)rand()函式沒有輸入引數,直接通過表示式rand()來引用;例如可以用下面的語句來列印兩個隨機數:

printf("random numbers are: %i %i\n",rand(),rand());

(4)因為rand()函式是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說c語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數。

(5)為了使程式在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函式 srand()(來自stdlib.h)可以為隨機數生成器播散種子。

只要種子不同rand()函式就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。

例項:#include

#include

int main()

return 0;}

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

7樓:59分粑粑

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

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

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

8樓:匿名使用者

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

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

9樓:匿名使用者

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

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

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

10樓:防禦

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

11樓:匿名使用者

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

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

12樓:匿名使用者

隨機數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個,基本能夠保證產生的隨機數唯一

13樓:匿名使用者

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

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

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

14樓:二十年

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

可以用Pinky作英文名麼,Muse可以用作英文名麼?

可以,英文名字的話可以隨意取,而且可以自己造。有一位泰國女藝人就叫pinky muse可以用作英文名麼?可以muse是可以做英文名的,翻譯為繆斯,繆斯是希臘神話中主司藝術與科學的九位古老文藝女神的總稱。她們代表了通過傳統的 和舞蹈 即時代流傳下來的詩歌所表達出來的神話傳說,所以給孩子取名叫繆斯,代表...

金馬傑作可以用住房公積金么,金馬傑作可以用住房公積金麼

住房公積金的用途 住房公積金應當用於職工購買 建造 翻建 大修自住住房,任何單位和個人不得挪作它用。職工有下列情形之一的,可以提取職工住房公積金賬戶內的儲存餘額 一 購買 建造 翻建 大修自住住房的 二 離休 退休的 三 完全喪失勞動能力,並與單位終止勞動關係的 四 出境定居的 五 償還購房貸款本息...

100兆流量可以用多久,100m流量可以用多久

如果是2g網能用很久,一個月基本夠了,如果是4g網那麼快的話1天甚至更短,慢的話頂多5天就用完了,望採納 看你怎麼用了,如果經常上網聊天刷朋友圈刷微博,十幾分鍾就沒了如果只是開著行動網路,只是普通聊天,一天大概15m待機時間更長 這個得取決於你開 來多少自應用程式,比如安bai卓的手機你得把du一些...