A. c語言,如何產生隨機數
1、第一步,先定義int一個數組和int一個指針變數。
B. C語言怎樣使用隨機數
#include <stdio.h>
#include <conio.h>
main()
{
int i,n,sum=0;
srand(time(NULL));//設置隨機種子
system("cls");//清屏
n=rand()%101;//隨機數在1-100之間
sum=sum+n;//將生成的隨機數累加,存在sum變數中
printf("\n%d",sum);//輸出總和
system("pause");//使程序在DOS窗口下暫停,可注釋掉
}
C. 怎麼用C語言生成隨機數
生成1~13的隨機數,隨機數序列中沒有重復字數
#include <stdio.h>
#include <stdlib.h> // 包含rand()函數說明
#include <time.h>
#define N 13
void main( void )
{ inti, j, num[N], tmp; //用當前時間種子重置隨機數生成器,使每次運行生成不同的隨機數
srand((unsigned)time( NULL ) );
for(i=0;i<N;i++) // 生成N個數
{
while(1) //生成1個數
{
tmp=N *rand()/ RAND_MAX +1; // 產生隨機數
for(j=0;j<i;j++) //判斷是否重復
if( tmp==num[j] )
break;
if(j==i) // 找到1個數
{
num[i]=tmp; //入隊列
break; // 開始下一輪
}
} printf("%3d\t",num[i]); //列印結果
}
}
如果可以重復,去掉內循環,直接將生成的隨機數存入數組
D. c語言,如何產生隨機數
c語言中的隨機數是偽隨機,真正意義上的隨機應該是和上一狀態無關的,所以設置srand就顯得尤為重要了
下面是linux中stdlib的實現,供參考:
static
long
holdrand
=
1L;
void
srand(unsigned
int
seed)
{
holdrand
=
(long)
seed;
}
int
rand()
{
return
(((holdrand
=
holdrand
*
214013L
+
2531011L)
>>
16)
&
0x7fff);
}
E. c語言如何產生隨機數
srand(int)來設種子,然後每次rand()返回一個隨機數。
注意要包含#include <stdlib.h>頭文件,因為用到了srand函數
#include <time.h> //用到了time函數
int main()
{
srand((unsigned) time(NULL)); //用時間做種,每次產生隨機數不一樣
for (int i=0; i<10; i++)
{
int number = rand() % 12 + 1; //產生1-13的隨機數
printf("%d\n", number);
}
return 0;
}
F. c語言 關於產生隨機數
因為,是通過time為輸入來計算出輸出的假的隨機數產生器。
第一次程序執行很多遍,time參數更新好多次帶進去。所以差異很大。
第二次你寫的程序,每次重新運行,到取隨機數函數時候,經過的time都是相接近的數值,所以輸出也一樣
G. linux C語言 rand函數
機械工業出版社有一本linux C的,好像是函數的
你可以看看,寫的我覺得那就非常的好
VC
int rand( void );
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX.
至於 RAND_MAX 在 stdlib.h 中有定義,為 32767
可能是庫不同???難道linux下的C···不一樣?
具體我也不知道不好意思
linuxC我沒弄過···
H. C語言如何生成隨機數
在VC中設計到隨機數有兩個函數
srand()
and
rand()
srand()
的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數
注意
1:srand()
里的值必須是動態變化的,否則得到的隨機數就是一個固定數
2:其實可以不用寫srand()
,只用rand()就可以了,省事,簡單,例子如下
如果我們想得到一個
0-60的隨機數那麼可以寫成
int
i;
i=rand()%60;
就可以了。
當然最好有個統一的標注如下:
int
i;
srand((unsigned)time(
NULL
));
i=rand()%60;
這樣就OK了。
I. c語言用linux的ubuntu編程的時候b=rand()%3是把1到3的隨機數賦給b的意思嗎
x%3求余,只可能是0,1,2,因此,這里的隨機數是0,1,2三個,賦值給b。
不建議直接使用rand()%N這種隨機數生成使用,特別是當N比較大時候。
一般RAND_MAX = 32767,這樣算下來,不太准確的隨機數。
更好的方法如下:
doubler=rand()/(double(RAND_MAX)+double(1));//[0,1)
b=r*3+1;//[1,3]
J. linux中,C語言for語句中的隨機數種子。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i,j;
srand(time(0));
for( i = 0;i < 1000;i++)
for(j = 0;i < 100;i++){
printf("%3d",rand()%100+1);
printf("\n");
}
return 0;
}