c語言中隨機函數的問題,c語言里的隨機函數

本文目錄一覽:

關於C語言編程中隨機數函數的使用問題

rnd是vb中的隨機函數,應該用rand();

函數說明

rand()會返回一隨機數值,範圍在0至RAND_MAX

間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。關於隨機數種子請參考srand()。

srand((int)time(0));

是產生的隨機數每次不一樣。

#includetime.h

#includestdlib.h

main()

{

int

i,j;

srand((int)time(0));

for(i=0;i10;i++)

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf(“

%d

“,j);

}

}

執行

5

8

8

8

10

2

10

6

9

9

2

9

7

4

10

3

2

10

8

7

關於C語言隨機函數

srand(

time(0)

);

放在循環外每次產生隨機數的種子也是一樣的啊,為什麼產生的隨機數就不一樣了?

因為隨機函數只需要一個種子就能產生一系列的隨機數,並不是每個隨機數都需要一個種子。

你把

srand(time(0))

放到循環前面就可以了。

原因:

time(0)返回的是系統的時間(從1970.1.1午夜算起),單位:秒,而那個循環運行起來耗時連0.000001秒都不到!

也就是說,srand(time(0))

連着4次的種子是一樣的,種子一樣,生產的隨機數當然是一樣了。

如果你在把srand()放循環裡面,在中間加個sleep函數,消耗一點時間(間隔大於1秒),那麼生成的rand

就不一樣了.但是這樣做很不好,連着兩次用srand生成的種子,間隔一樣,生產的隨機數間隔有會有規律性。

另:因為兩次運行同一程序的時間肯定是不一樣的,所以把srand放在循環前面可以得不同的種子,這樣才能得到你想要的。

c語言中關於隨機函數的問題

#include

“stdio.h”

#include

“stdlib.h”

#include

“time.h”

int

Rrand(int

min,int

max);

main()

{

int

i;

int

a[200];

srand((unsigned)time(NULL));

/*將當前時間設置成隨機函數的種子,以每次運行產生的數都不一樣

*/

for(i=0;i20;i++)

a[i]=Rrand(0,60);

for(;i60;i++)

a[i]=Rrand(59,70);

for(;i140;i++)

a[i]=Rrand(69,80);

for(;i180;i++)

a[i]=Rrand(79,90);

for(;i200;i++)

a[i]=Rrand(89,101);

for(i=0;i200;i++)

printf(“%d\t”,a[i]);

}

int

Rrand(int

min,int

max)//在min和max之間整數中生成一隨機數並返回(不包括min和max),若不能產生隨機數返回-1.

{

int

num;

if(max-min1min=0)

{

num=rand()%max;

if(nummin)

return

num;

else

return

Rrand(min,max);

}

else

return

-1;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160934.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-21 01:16
下一篇 2024-11-21 01:16

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示“文件中含有宏,保存將導致宏不可用”的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29

發表回復

登錄後才能評論