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 這個是產生隨機數函式,由於庫函式功能有限,所以要自...