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

c語言數列求隨機數

發布時間: 2022-08-18 15:02:10

Ⅰ 怎麼用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語言怎樣產生一定范圍的隨機數

在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,可以稱它為種子。

為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數。

C語言產生一定范圍的隨機數的源代碼如下:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int i;

for(i=0; i<10; i++) //隨機產生10個數。

{

printf("%d ", rand());

}

return 0;

}

(2)c語言數列求隨機數擴展閱讀

1、如果要隨機生成一個在一定范圍的數,你可以在宏定義中定義一個random(int number)函數,然後在main()裡面直接調用random()函數。

2、在對rand()的前三次調用中,並且此後得到的返回值仍然是在對rand()的第一批調用中所得到的其餘的返回值。因此,只有再次給srand()提供一個隨機的「種子」值,才能再次得到一個隨機數。

Ⅲ C語言中取隨機數的函數

1. 基本函數

在C語言中取隨機數所需要的函數是:

int rand(void); void srand (unsigned int n);

rand()函數和srand()函數被聲明在頭文件stdlib.h中,所以要使用這兩個函數必須包含該頭文件:

#include <stdlib.h>

2. 使用方法

rand()函數返回0到RAND_MAX之間的偽隨機數(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等於32767,或者更大。

srand()函數使用自變數n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然後調用rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函數的種子,就可以避免重復的發生。如果,調用rand()之前沒有先調用srand(),就和事先調用srand(1)所產生的結果一樣。

舉個例子,假設我們要取得0~10之間的隨機整數(不含10本身):

/* 例1:不指定種子的值 */
for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:1 7 4 0 9 4 8 8 2 4
/* 例2:指定種子的值為1 */
srand(1); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:1 7 4 0 9 4 8 8 2 4
例2的輸出結果與例1是完全一樣的。
/* 例3:指定種子的值為8 */ srand(8); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:4 0 1 3 5 3 7 7 1 5
該程序取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次運行程序的結果都相同。
/* 例4:指定種子值為現在的時間 */ srand((unsigned)time(NULL)); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
該程序每次運行結果都不一樣,因為每次啟動程序的時間都不同。另外需要注意的是,使用time()函數前必須包含頭文件time.h。

3. 注意事項
求一定范圍內的隨機數。
如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。
randnumber = rand() % 10;
那麼,如果取的值不是從0開始呢?你只需要記住一個通用的公式。
要取[a,b)之間的隨機整數(包括a,但不包括b),使用:
(rand() % (b - a)) + a
偽隨機浮點數。
要取得0~1之間的浮點數,可以用:
rand() / (double)(RAND_MAX)
如果想取更大范圍的隨機浮點數,比如0~100,可以採用如下方法:
rand() /((double)(RAND_MAX)/100) 其他情況,以此類推,這里不作詳細說明。

Ⅳ 怎樣用c語言取一個隨機數

例如:
#include<stdlib.h>
int
i;
i=rand()%10;
就是取0到10(不包括10)之間的隨機數

Ⅳ 如何用c語言產生一定范圍內的隨機數

利用srand((unsigned int)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的。

在C語言里所提供的隨機數發生器的用法:現在的C編譯器都提供了一個基於ANSI標準的偽隨機數發生器函數,用來生成隨機數。它們就是rand()和srand()函數。這二個函數的工作過程如下:

1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;

2) 然後調用rand(),它會根據提供給srand()的種子值返回一個隨機數(在0到32767之間)

3) 根據需要多次調用rand(),從而不間斷地得到新的隨機數;

4) 無論什麼時候,都可以給srand()提供一個新的種子,從而進一步「隨機化」rand()的輸出結果。

下面是0~32767之間的隨機數程序:

#include <stdlib.h>

#include <stdio.h>

#include <time.h> // 使用當前時鍾做種子

void main(void)

{int i;

srand((unsigned)time( NULL ) ); // 初始化隨機數

for(i = 0; i < 10;i++) // 列印出 10 個隨機數

printf("%d ", rand() );

}

根據上面的程序可以很容易得到0~1之間的隨機數:

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

int main( )

{int i;

srand((unsigned)time( NULL ) );

for(i = 0; i < 10;i++)

printf("%5.2f ", rand()/32767.0);

}

而產生1~100之間的隨機數可以這樣寫:

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

int main( )

{int i;

srand((unsigned)time( NULL ) );

for(i = 0; i < 10;i++)

printf("%d ", rand()%100+1);

}

(5)c語言數列求隨機數擴展閱讀:

C語言高效編程技巧:

一:以空間換時間

計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題

二:數學方法解決問題

數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。

三:使用位操作

實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。

在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。

Ⅵ c語言怎麼生成隨機數

你好!

#include<stdio.h>
#include<stdlib.h>//生成隨機數用
#include<time.h>//利用時間生成種子
#include<math.h>

intmain()
{
inti;
inta[100];
srand(time(NULL));//生成種子

for(i=0;i<100;i++)
{
a[i]=rand()%1000+1000;//生成一個小於1000的隨機數
//然後加1000,變成1000-2000之間的數
printf("%d",a[i]);//列印
}

i=rand()%100;//隨機抽取其中的一個數
printf(" 抽取到的是:%d ",a[i]);//列印


return0;
}

Ⅶ C語言中獲得隨機數的方法是什麼

可以使用庫函數rand()。
rand聲明於stdlib.h,其原型為

int rand(void);
功能為返回一個隨機整型值。在C語言中,該值是一個正數值。

在需要限定獲取到的隨機數范圍時,如范圍要求為[m,n] m<n且m,n均為整數,可以用
rand()%(n-m+1)+m
的形式進行獲取。原理為:
%為取余計算,當%k時,結果是[0,k-1]之間的數值;
於是rand()%(n-m+1) ∈ [0, n-m];
所以rand()%(n-m+1)+m ∈ [0+m, n-m+m]=[m,n]。

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

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