當前位置:首頁 » 編程語言 » c語言生成隨機數

c語言生成隨機數

發布時間: 2022-01-08 22:33:22

㈠ 如何用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;
}

㈡ 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語言 關於產生隨機數

/**
*編譯器: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語言中產生一定范圍的隨機數

c語言的獲取隨機數的函數為rand(),
可以獲得一個非負整數的隨機數。要調用rand需要引用頭文件stdlib.h。
要讓隨機數限定在一個范圍,可以採用模除加加法的方式。
要產生隨機數r,
其范圍為
m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理為,對於任意數,
0<=rand()%(n-m+1)<=n-m
於是
0+m<=rand()%(n-m+1)+m<=n-m+m

m<=rand()%(n-m+1)+m<=n

㈤ C語言中產生隨機數的函數是什麼

rand函數也是調用dos的時鍾,進行的偽隨機函數.
你也可以使用時鍾來模擬隨機函數.
可以試用gettime這個函數:
long int MyRand(int x)
{
struct time t1,t2,t3;
gettime(&t1);
int y1=t1.ti_hund;//取1/100s作為基數
gettime(&t2);
int y2=t2.ti_hund;//取1/100s作為基數
gettime(&t3);
int y3=t3.ti_hund;//取1/100s作為基數
return y1*y2*y3;//產生的隨機數0~99*99*99
}

㈥ 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語言編寫)

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

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

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

㈨ 怎麼用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語言中產生隨機數

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

熱點內容
upyun上傳文件 發布:2024-11-10 14:00:12 瀏覽:856
php之道 發布:2024-11-10 13:50:45 瀏覽:790
n的階乘c語言程序 發布:2024-11-10 13:50:45 瀏覽:512
伺服器電腦是主機嗎 發布:2024-11-10 13:50:41 瀏覽:284
wifi怎麼更改賬號密碼 發布:2024-11-10 13:41:58 瀏覽:818
c語言編程學習什麼 發布:2024-11-10 13:40:37 瀏覽:908
紅米手機屏鎖密碼忘了怎麼辦 發布:2024-11-10 13:32:43 瀏覽:28
matlab能編譯udf嗎 發布:2024-11-10 13:31:53 瀏覽:604
生成器表達式python 發布:2024-11-10 13:31:49 瀏覽:462
java路徑在哪 發布:2024-11-10 13:31:47 瀏覽:374