日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言产生随机数调换,C语言产生随机数

發布時間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言产生随机数调换,C语言产生随机数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 產生隨機數的函數為:rand()

2 所在的庫函數的頭文件為#include

3?rand() ,它返回一個[seed, RAND_MAX(0x7fff))間的隨機整數,RAND_MAX=32767

4 問題來了,如何產生一個指定范圍里的隨機數呢

(0,1):rand()/(float)(RAND_MAX)

(4,7):rand()/(float)(RAND_MAX)*4+3

5 每次調用rand()的時候產生的隨機數都是死的,結果不會因為多次運行而不同

rand()在產生隨機數時,會默認調用srand(1),即種子永遠是1,區間都是:[1,32767]

6 那么問題來了,如何改變呢?

就是使用另外一個配合使用的函數:srand(),該函數來提供不同的種子

s:seed rand-----srand(變化的值)----時間值函數----time(0);

7 示例代碼如下:

#include#include#include

intmain()

{inti;

srand((unsigned)time(0));

printf("%d",RAND_MAX);for(i=0;i<10;i++){

printf("%lf",rand()/(float)(RAND_MAX)*4+3);

printf("%lf",rand()/(float)(RAND_MAX));

}

system("pause");return 0;

}

8 兩次運行產生的結果:

32767

5.681234 0.548845

6.095187 0.419202

4.266640 0.239814

6.094089 0.313181

5.484573 0.369121

4.006989 0.297861

4.425214 0.254189

6.400861 0.165288

4.976623 0.434645

3.333750 0.471908

-------------------------------

32767

5.688803 0.781152

3.528092 0.371929

4.189611 0.516678

5.312937 0.615864

3.780419 0.804254

3.663839 0.323405

3.772607 0.848323

5.871914 0.218482

3.176519 0.118198

3.579730 0.112278

9 應用示例:

1?需要產生隨機的三個屬性值:評分,價格,產品ID;

2 評分,價格給予指定的區間,產品ID為10個A-Z組成的字母;

代碼如下:

#include#include#include

double get_num(int max,doublemin){return rand()*1.0/RAND_MAX*max+min;

}intmain(){

FILE*f;

f=fopen("data.txt","w");char pid[11];inti,j,row;doublescore,price;

srand((unsigned)time(NULL));

row=100;for (i=0;i

score= get_num(9,1.0);

price= get_num(99,1.0);for (j=0;j<10;j++)

pid[j]= 'Z'-(int)get_num(25,1.0);

pid[j]='

總結

以上是生活随笔為你收集整理的c语言产生随机数调换,C语言产生随机数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。