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语言产生随机数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用jquery—Canvas实现htm
- 下一篇: ARM与PLC