當前位置:首頁 » 編程語言 » c語言中random包含在哪
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中random包含在哪

發布時間: 2022-06-29 07:55:10

1. c語言random()的問題

srand((int)time(NULL))用於設定隨機數種子。rand()%100,產生0-99的隨機數。如果要產生16-59之間的數,可以這樣寫:rand()%44+16(這里44由59-16+1得到)。其他情況與此雷同。

rand()是不能產生真正的隨機數的。即使不能產生真正的隨機數,也要大概接近。而rand()好象每次的隨機都一樣。之所以rand()每次的隨機數都一樣是因為rand()函數使用不正確。

各種編程語言返回的隨機數(確切地說是偽隨機數)實際上都是根據遞推公式計算的一組數值,當序列足夠長,這組數值近似滿足均勻分布。

(1)c語言中random包含在哪擴展閱讀

調用隨機數函數 rand()() 的時候, 實際得到的這個隨機數並不是絕對隨機的,它是以一個初始值,通過一個演算法,計算出來的「偽隨機數"數列,每次調用rand()()時,從這個數列依次取出一個值,做為隨機數。

這個初始的值就是"隨機數種子", 也就是說,如果隨機數種子相同,計算出的隨機數數列是相同的。而srand()om( x) 這個函數就是初始化隨機數產生器,設定隨機數種子用的。給定的x的就是隨機數種子。可以驗證,當你多次調用srandm(x)時,如果x取值相同,則得到的隨機數數列是一樣的。

所以,若我們每次運行程序時,要得到不同的隨機數序列,就應該用不同的種子來初始化這個隨機數產生器。比如說,用時間初始化它,或者用getpid(),用進程的pid號初始化,由於每次運行程序時,它的pid號一般是不同的,所以能夠產生不同的隨機數序列。

2. C語言中 random使用

/* Note:Your choice is C IDE */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
int i,count[100];
for(i=0;i<100;i++)
{count[i]=random(1000);//設定取值范圍,這表明隨機數是0-1000之間取
printf("%d\n",count[i]);
}

}
這樣應該滿足你的要求了

3. C語言random函數

s_addr是一個long型的變數,當然可以用random的返回值進行賦值。結構體如下:
typedef struct in_addr {
union {
struct {
u_char s_b1,s_b2,s_b3,s_b4;
} S_un_b;
struct {
u_short s_w1,s_w2;
} S_un_w;
u_long S_addr;////////////////////////////////////////這里
} S_un;
} in_addr;

IP地址本來就是一個32位整數,只不過為了方便記憶和查看,將8位作為一組,每組用10進制數字表示,並且用'.'隔開。比如:0.0.0.3,對應的32位二進制數為:0000000000.....111(前面有29個0),s_addr就是記錄這個二進制數的。

struct {u_char s_b1,s_b2,s_b3,s_b4;} S_un_b;
這個是用4個10進制數表示的IP地址,
s_un_b.s_b1=0
s_un_b.s_b2=0
s_un_b.s_b3=0
s_un_b.s_b4=3
就是IP地址"0.0.0.3"了,系統負責將它轉換為32位二進制數。

struct {u_short s_w1,s_w2;} S_un_w;
這個是指前16位作為一部分,後面16位作為一個部分。".0.0.0.3"前面16位作為一個部分值為0,後面的部分值為3,所以:
s_un_w.s_w1=0;
s_un_w.s_w2=3;

4. C語言隨即函數random()問題!急!!!

randomize()和random()這兩個函數,在c語言的標准庫裡面,早就不用了。
現在,要用srand()和rand()來設置種子和產生隨機數了

5. C語言中 random() 函數怎麼用

srand(int)用來設種子,然後每次rand()返回一個隨機值種子最好是每次都不同的,否則你每次得到的都是同樣的一系列偽隨機數,通常讓種子和當前時間相關,比如srand((unsigned)time(0));

6. 詳細介紹一下C語言裡面的隨機數產生函數random怎麼用

rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種了,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了 srand()函數,它的原形是void srand( int a).

初始化隨機產生器既rand()函數的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數,我們是可以產生可以預見的隨機序列,那我們如何才能產生不可預見的隨機序列呢?我們可能常常需要這樣的隨機序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的.

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

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

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

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

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

以下是一個產生隨機數的例子:

需要首先使用隨機數「種子」初始化,srand函數:

#include<stdlib.h>
#include<stdio.h>
#include<time.h>//使用當前時鍾做種子
voidmain(void)
{
inti;
srand((unsigned)time(NULL));//初始化隨機數
/*列印10個隨機數.*/
for(i=0;i<10;i++)
printf("%d ",rand());
}


#include<stdlib.h>
#include<time.h>
main
{
inti;
srand(time(0));//初始化隨機種子
i=rand();//產生隨機數
}

首先,加一個"#include<stdlib.h>

然後設一個變數,如j,j=rand(),就可以給j賦一個1~32767的隨機數,如果要獲得一個隨機函數的十位(其它類似),只需令j=j%10就行.

添加頭文件 #include<time.h>

然後在文件中添加 srand((unsigned)time(NULL));

srand()是用來初始化隨機種子數的,因為rand的內部實現是用線性同餘法做的,它不是真的隨機數,只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的.

上面是有個隨機種子的說明及方法,為了避免重復.然後再 用 隨機函數,rand() 就行了.

頭文件是 stdlib.h

random() 產生隨機數為 0或1

random(n) 產生隨機數為 0到n之間的一個隨機數

rand() 產生 0到32768之間的一個隨機數

函數名: randomize

功 能: 初始化隨機數發生器

用 法: void randomize(void);

程序例:

#include<stdlib.h>
#include<stdio.h>
#include<time.h>
intmain(void)
{
inti;
randomize();
printf("Tenrandomnumbersfrom0to99 ");
for(i=0;i<10;i++)
printf("%d ",rand()%100);
return0;
}

7. c語言random函數怎麼用

C語言裡面沒有random函數
只有rand
功能是產生一個整型隨機數。
比如
n=rand();
這樣就可以了
為了真隨機,一般在開始設置一個種子 一次即可。 常用方式為
srand(time(NULL));

8. c語言里 random函數怎麼實現的

1.
rand函數是根據一個數(我們可以稱它為種子)為基準,以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,
2.
但這產生的並不是真意正義上的隨機數,是一個偽隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值。
3.
種子相同,產生的隨機序列相同。這樣做的好處是,方便我們產生一組固定的隨機序列,用來調試程序。
4.
C提供了srand()函數,用來設置種子,它的原形是void
srand(
int
a)。
5.
在調用rand函數產生隨機數前,應該先利用srand()設好隨機數種子,如果未設隨機數種子,默認種子為1。

9. 請教一個C語言的問題,關於random函數的。

本程序已運行成功
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a[5][5];
int i,j,t,row,col,max;
randomize();/*初始化隨機數發生器*/
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=random(100);/*產生隨機數*/

for(i=0;i<5;i++)/*輸出數組*/
{
for(j=0;j<5;j++)
printf("%-5d",a[i][j]);
putchar('\n');
}
for(i=0;i<5;i++)/*第一行和第五行互換*/
{
t=a[0][i];
a[0][i]=a[4][i];
a[4][i]=t;
}
putchar('\n');
for(i=0;i<5;i++)/*輸出互換後的數組*/
{
for(j=0;j<5;j++)
printf("%-5d",a[i][j]);
putchar('\n');
}
for(i=0;i<5;i++)/*求每行最大值*/
{
row=i;
col=0;
max=a[i][0];
for(j=0;j<5;j++)
{
if(max<a[i][j])
{
max=a[i][j];
col=j;
}
}
printf("max=%-d row=%-5d colum=%-5d\n",max,row,col);/*輸出行、列號,和最大值*/
}
getch();
}

10. c語言randomize()函數是初始化隨機數發生器,請問它包含在那個函數庫里

randomize()和random()這兩個函數,在c語言的標准庫裡面,早就不用了。
現在,要用srand()和rand()來設置種子和產生隨機數了
希望回答能幫到你,哪裡不清楚再問。