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

c語言隨機數為什麼輸出一樣

發布時間: 2023-06-01 13:34:45

c語言為什麼我三次隨機輸出的結果是一樣的

非常簡單:

get_lotto_draw();僅僅調用一次,生成的 getLottery也是唯一

int *getLottery =get_lotto_draw();


其實,你鄭猜可以把這一句則悔放 循環里

for(times=0;times<3;times++) {

結喊盯型果就不一樣

當然,這里對你的程序做了一點修改!

㈡ C語言實現的隨機數生成程序為什麼每次生成的數字一樣用於STC89C54RD+

【答】rand()本就是偽隨機數,是一張已知的隨機數表。當函數執行的時候從表中按規律讀取數據。故而,每次測試所得到的隨機數都是兄衫一樣的。
不過,你可以試一下srand(),先放個種子
【補充】敗早不是說了嗎?它本是偽隨機數,就以一張已知的表。每次按同樣的規律查,當然得到相同的數了 。
這樣吧,你在rand()函數調用之前加上一句srand(time(null)),當然在引用頭文件列表中也要加上#include <time.h> 語句。不過,不知道能不能察塵雀通過。單片機上好像還沒有時鍾。你先試一下

㈢ C語言生成隨機數的函數,為什麼循環後隨機數都一樣

srand()函數是初始化隨機數產生器,它產生隨機數種子,說白了就是初始化隨機數。

srand((unsigned)time(0));取的是系統時間,也就是距離1970.1.1午夜有多少秒。而for循環每循環一次時間遠遠小於1秒,這就導致了srand((unsigned)time(0))產生的種子並沒有改變。 那麼,相同的隨機數種子所產生的隨機數肯定是一樣的了。


(3)c語言隨機數為什麼輸出一樣擴展閱讀:

C語言產生隨機數的方法:

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

2,C語言中的隨機函數random,可是random函數並不是ANSI C標准,所以說,random函數不能在gcc,vc等編譯器下編譯通過。

3,rand()會返回一隨機數值,范圍在0至RAND_MAX 間。返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,(其值至少為32767)我運算的結果是一個不定的數,要看你定義的變數類型,int整形的話就是32767。

4,在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。一般用for語句來設置種子的個數。

㈣ 為什麼我用C語言編寫的一個隨機數生成程序生成的數總是一樣的

你需要設置隨機數種子才能生成不一樣的隨機數
你可以參考下面這個樣例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j;
srand((int)time(0));/*設置隨機數種子*/
for(i=0;i<10;i++)
{
j=rand()%100;
printf("%d\n",j);
}
return 0;
}

㈤ c語言產生均勻分布隨機數為什麼是同一個值啊

1.
c語言產生隨機數
rand()
函數是要設置隨機數種子的,即
srand()
函數。
若不調用,則是默認的隨機數,也就是說這個隨機數序列是固定的。
2.
而隨機數序列是根據 srand()
所帶參數的值變化而變化的,一般如是設置
srand(
time(NULL)
);
這樣以時間來設置種子,可以保證程序在每次運行時,設置的種子參數都是變化的。

㈥ 請高手幫我看看為何我的c語言生成的隨機數都相同我剛開始學。

原因: time(0)返回的是系賀指統的時間(從1970.1.1午夜算起),單位:秒,而世帶那個循環運行起來耗時連0.000001秒都不到! 也就是說,srand(time(0)) 連著4次的種子是一樣的,種子一樣,生產的隨機數當然是一樣了。

srand的禪返配例子,你參考下就行:
/* RAND.C: This program seeds the random-number generator
* with the GetTickCount, then displays 10 random integers.
*/

#include <stdlib.h>
#include <stdio.h>
#include <winbase.h>

void main( void )
{
int i;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand(
GetTickCount()
);
/* Display 10 numbers. */
for(
i = 0; i < 10;i++
)
printf(
"%6d\n", rand()
);
}

㈦ C語言用rand函數為什麼每次都是相同的隨機數

生成隨機數的時候沒有初始化種子,每次生成的都是相同虛清的隨機序列,
可以使用時間初始化。
在main函沖散數的第一句加上srand(time(null));
再調用rand()生成隨機數。
需要包含以下頭文件差判前
#include
#include

㈧ C語言用rand函數為什麼每次都是相同的隨機數

是這樣的。
C語言中的隨機數應該是應用的隨機數表。
比如寫一個程序
printf("%d",rand()%10);
每次運行結果都是一並信辯樣的。
如果想產生每次不同的隨機絕缺數,就坦啟時間關聯來產生隨機數。
這樣只要每次運行時間不同,隨機數就不同。

㈨ C語言產生隨機數字,結果輸出值都一樣

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//#include<crtdefs.h>
intmain(){
inti;
intnum;
srand((unsignedint)time(NULL));//改成這樣就好了:先用時間初始化隨機種子
for(i=0;i<10;i++){
//time_tt;
num=rand()%100; //生成隨機數
printf("%d ",num);
num>50?printf("你贏了 "):printf("你輸了 "); //0為假,非0為真
}
getchar();
}

㈩ 在c語言里,為什麼rand()每次生成的數都一樣

分類辯毀: 電腦/網路 >> 程序攜缺備設計 >> 其他編程語言
問題描述:

如題~~~

解析:

那是因為rand()生成的是偽隨機數,需要種子來產生不同的隨機數。

如果在預編譯時聲明#include<ctime>,則可用生成種子的函數 srand((unsigned)time(NULL)) ,因為時間值可以看成是一個隨扮銷機的量(即每一時刻都不同),所以就生成了變化的偽隨機數