當前位置:首頁 » 編程語言 » c語言生成隨機數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言生成隨機數

發布時間: 2022-01-13 03:16:02

c語言中產生隨機數

隨機數主要有兩個函數
一個種子產生函數
void
srand(int);
一個隨機數產生函數
int
rand();
當我們要產生隨機數的時候,首先我們生成一個隨機數種子(注意相同的種子產生的隨機數序列是一樣的)
然後使用rand()函數得到隨機數
祝你好運

㈡ C語言如何編程產生隨機數

1、首先打開Visual stdio 2019,依次點擊文件,新建,項目新建以一個空白的項目:

㈢ C語言中怎樣生成隨機數

C語言生成
隨機數

函數
為rand。
1
聲明:
int
rand(void);
2
頭文件:
stdlib.h
3
功能:
獲取一個非負隨機
數值

4
注意事項:
a)
rand是
偽隨機數
,由一個種子計算得來。
如果種子相同,每次啟動
程序
,獲取到的
隨機序列
是固定的。
可以通過srand設置當前時間作為種子,使隨機效果更好。
srand(time(NULL));
b)
要獲取[m,n]范圍的隨機數,可以使用代碼
rand()%(n-m+1)+m

㈣ c語言,如何產生隨機數

1、第一步,先定義int一個數組和int一個指針變數。

㈤ 產生隨機數...(用c語言編寫)

用C語言產生隨機數,必須使用一個產生隨機數的函數rand
這個函數就可以隨機產生一個隨機數的

㈥ 怎麼用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語言:產生隨機數 求高手指導!!!

我這里給出M,N是double
的通用程序。(m
<
n
).
隨機數也是double,你若要整數自己取整。
指數分布,假定指數分布函數曲線是:
f(x)=LAM
*
exp(-LAM*x);
LAM

指數分布函數
參數。你要自己給定,我這里給了1.2。
#include
<stdio.h>
#include
<stdlib.h>
#include
<time.h>
//
別忘了

time.h
#include
<math.h>
//
別忘了

math.h
//
均勻分布的隨機數
double
rd_MN1(double
m,double
n)
{
double
r;
if
(m>n)
{r=n;n=m;m=r;};
r
=
(
(double)rand()
/
((double)(RAND_MAX)+(double)(1))
);
r
=
m
+
r
*
(n-m);
return
r;
}
void
main()
{
long
int
i,k;
double
m,n;
double
x,
r;
double
y;
double
LAM=1.2;
//f(x)=LAM*exp(-LAM*x);
m=2.0;
n=5.0;
srand((unsigned)time(NULL));
//
隨機種子
for
(i=0;i<50;i++)
printf("%lf
",
rd_MN1(m,n));
printf("\n==========\n");
srand((unsigned)time(NULL));
k=0;
loop:
r
=
(
(double)rand()
/
((double)(RAND_MAX)+(double)(1))
);
y
=
-log(r)
/
LAM;
if
(y
>=
m
&&
y
<=
n)
{printf("%lf
",y);
k++;};
if
(k
<
50)
goto
loop;
//
產生50個指數分布隨機數
}

㈧ c語言 關於產生隨機數

/**
*編譯器:vs2010
*時間:2017年11月7日
*@fencaide
*/

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

intmain(void)
{
intanswer=0;

for(inti=0;i<10;i++){
srand((unsigned)time(NULL));
answer=rand()%9000;
printf("%d ",answer);
Sleep(2000);
}

getchar();
getchar();
return0;
}

人家的隨機是相對於這個種子的情況下,不同的種子產生的結果當然不具備隨機性,而且偽隨機不是真隨機。也就是對於一個種子多次rand是具備「隨機性」的,而因為是偽隨機,多個種子多次隨機自然不是隨機的,下面這段話我 別人的哈

  • rand函數產生的並不是真意正義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數

㈨ C語言產生隨機數


/***********************
作者:dongyu
功能:生成隨機數
***********************/
#include <stdio.h>
#include <conio.h>
main()
{
int i,n,sum=0,mark=1;
srand(time(NULL));//設置隨機種子
while(mark==1)//如超出隨機數總和的范圍,則重新生成隨機數
{
sum=0;//將總和歸零
system("cls");//清屏
printf("符合條件的200個隨機數為:");//列印一個回車
for(i=0;i<200;i++)//循環200次,生成200個隨機數
{
if(i%10==0)
printf("\n");
n=rand()%101;//隨機數在1-100之間
sum=sum+n;//將生成的隨機數累加,存在sum變數中
printf("%d ",n);//輸出每次循環生成的隨機數
}

if(sum==10000)//判斷是否等於確定的隨機數總和
{
mark=0;//如果不等,變數mark為0
}
}
printf("\n%d",sum);//輸出總和
system("pause");//使程序在DOS窗口下暫停,可注釋掉
}

運行程序後,請耐心等待,因為200個100以內的隨機數的和,不是很容易就等於確定的總和數(10000)的!!

㈩ 如何用C語言產生隨機數,隨機數的加和是一確定的數

思路:
1
先獲取到加和值;
2
輸入加和值范圍內的一個隨機數;
3
用加和值減去獲取到的隨機數,這樣就得到了另外一個數;
4
循環執行,直到獲取到符合要求數量的數值為止。
以獲取10組數值為例,代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int s;
int i,n;
srand(time(NULL));//設置隨機數種子。
scanf("%d",&s);//輸入加和值。
for(i = 0; i < 10; i ++)//獲取10組要求的數值。
{
n = rand()%s;//獲取一個0~s-1的隨機數。
printf("%d+%d=%d\n", n, s-n, s);//輸出結果。
}

return 0;
}