c隨機產生數字

時間 2022-07-28 17:25:12

1樓:匿名使用者

隨機數的基本原理是系統取當前時間刻度作為隨機數種子。這個隨機數是毫秒級的。而你在乙個迴圈中沒有任何遲緩地取值,時間間隔過段,毫秒刻度沒有變化,隨機數種子一樣,所以結果也一樣。

你試試看下面

dowhile (a < 14);

就是每次都執行緒遲緩100毫秒,你就可以看到變化了。

要證明上述問題很容易,你再試試下面的**輸出每次迴圈的時間刻度do輸出結果類似:

633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0633803324917500000

0一樣吧

樓上的正解

random random = new random();

do將random放在外面,這樣每次random.next被調後會改變種子(改變機制不清楚,應該不是根據時間)。

2樓:

執行太快了 電腦一下子就得出數來了 所以一樣 sleep 一下下就好了

int a = 0;

dowhile (a < 14);

console.readkey();

3樓:滄海v飛天

我用了一下午時間測試 確定random出現數字完全決定於時間和次數時間都好理解

次數估計大家都沒注意過,兩個同一秒內執行的random 各生成10w的數字

結果證明 相對位上全部相等

你這麼多random在同一秒內 又都是第一次 當然一樣了http://hi.baidu.

4樓:匿名使用者

改變一下生成隨機數的種子就好了

5樓:匿名使用者

int a=0;

random random = new random();dowhile (a < 14);

return;

6樓:匿名使用者

random random = new random();

定義為全域性的

如何產生隨機數,要求C 描述

include include srand unsigned int time null int n rand num就是以當前時間為種子 seed 的 偽 隨機數 srand time null printf d n rand 99 1 輸出乙個 1,99 區間內的整數 1 srand time ...

c語言使用隨機函式rand產生1099的互不相

你好!你的 就沒有輸出部分呀 輸出部分新增了,你看看吧 include stdlib.h include stdio.h include time.h void main int n a 50 i,j,t srand time null for i 0 i 50 i a i rand 90 10 f...

c語言rand怎麼隨機產生浮點型數

問明 include include include define max random 1000 這個是產生隨機數的最大值,但是取浮點數,所以要除去的 define num 2500 double random double a,double b 這個是產生隨機數函式,由於庫函式功能有限,所以要自...