『壹』 怎麼用c語言生成隨機數
假設要生成的隨機數是大於等於20且小於等於100的整數
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用當前時間生成一個隨機數種子
x=rand()%(b-a+1)+a;
printf("得到一個隨機數:%d ",x);
}
『貳』 C語言 如何產生1到52之間的不同的隨機數
rand(產生隨機數)
相關函數
srand
表頭文件
#include<stdlib.h>
定義函數
int rand(void)
函數說明
rand()會返回一隨機數值,范圍在0至RAND_MAX 間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。關於隨機數種子請參考srand()。
返回值
返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,其值為2147483647。
範例
/* 產生介於1 到10 間的隨機數值,此範例未設隨機數種子,完整的隨機數產生請參考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
執行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
srand(設置隨機數種子)
相關函數
rand
表頭文件
#include<stdlib.h>
定義函數
void srand (unsigned int seed);
函數說明
srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
返回值
範例
/* 產生介於1 到10 間的隨機數值,此範例與執行結果可與rand()參照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
執行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
『叄』 c語言怎麼產生兩個不同的隨機數
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
main(){
int i,a[2];
srand(time(0));
for(i=0;i<2;i++)
a[i]=rand();
for(i=0;i<2;i++)
printf("%d\n",a[i]);
}
『肆』 c語言怎樣同時產生幾組不同的隨機數
int
a=(int)random(b);random(n)是產生從1到n
的一個隨機數
nt
a=rand();rand()產生的是0--32767之間的隨機數,rand()%5則結果為0-4的任意數,rand()%5+1則為1-5的任意數
『伍』 C語言隨機函數怎樣產生0-9互不相同的10個隨機數
對已經獲取到的隨機數做標記,如果已返團經獲取到過,那麼則放棄該隨機數,並繼續獲取。
直到獲取到所有隨機數為止。
參考代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[10];//存儲獲取到的隨機數。
intf[10]={0};//存儲是否獲取到過。
intn=0;//計數器。
srand(time(NULL));//設置隨機數種子。
while(n<10)
{
intm=rand()%10;//獲取一個0~9的隨機數。
if(f[m])continue;//該數之前已經獲取到過。
a[n++]=m;//將睜世啟該數存入數組。
f[m]=1;//標記該數已經獲取過。
}
悉如for(n=0;n<10;n++)//列印結果。
printf("%d,",a[n]);
return0;
}
『陸』 c語言 產生一個隨機數,如何讓它每一次運行出現不同的隨機數結果
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
intmain(void)
{
srand((unsigned)time(NULL));
inta;
a=rand()%10;
printf("%d ",a);
}
加一句srand((unsigned)time(NULL)); 打開隨機觸發器 與時鍾頻率同步
這樣每次隨機的數就不同 不過需要包含頭文件#include "time.h"
『柒』 C語言如何產生一定范圍內一定數量的不同隨機數
源代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#define a 16807//or 48271
#define m 2147483647
#define q (m/a)
#define r (m%a)
static long int seed = 1;
//return rand long in [1,m]
long int pm_rand(void)
{
long hi = seed / q;
long lo = seed % q;
long tmp = a * lo - r * hi;
if(tmp > 0)
seed = tmp;
else
seed = tmp + m;
return seed;
}
int main(void)
{
for(int i = 0;i < 100;++i)
printf("%ld ",pm_rand());
puts("");
return 0;
}
(7)c語言生成不同隨機數擴展閱讀
不指定范圍產生隨機數的源代碼
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for(i=0; i<10; i++) //隨機產生10個數。
{
printf("%d
", rand());
}
return 0;
}
『捌』 c語言怎樣產生兩個不同的隨機數
用random函數
但是既然是隨機數就有可能相同。要是一定不一樣那就不是隨機數了