c 如何隨機生成0和,c 如何隨機生成0和

2022-09-19 18:21:37 字數 4471 閱讀 7953

1樓:匿名使用者

可以通過對隨機數的結果對2求餘來得到0和1。

1)c++中的rand()函式可以得到一個0-rndmax之間的隨機數,randmax是一個巨集,你可以把它理解成65535;

2)使用rand()函式必須新增標頭檔案,**如下:

#include

3) 得到0或1的隨機數**如下:

int num=rand()%2;

因為對2求餘的結果不是0就是1,因此上面這句**就得到了一個0或1的隨機數。

2樓:匿名使用者

a=rand();

b=rand();

if(a>=b)

n=1;

else

n=0;

3樓:匿名使用者

int a= (rand()%2 == 1) 1:0;

c++隨機生成矩陣

4樓:好程式設計師

生產隨機的矩陣的關鍵在於使用隨機函式rand()。

rand()

表標頭檔案: #include

定義函式 :int rand(void)

函式說明 :

因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand()會返回一隨機數值,範圍在0至rand_max 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。rand ()產生的是假隨機數字,每次執行時是相同的。

若要不同,以不同的值來初始化它.初始化的函式就是srand()。

返回值:

返回0至rand_max之間的隨機整數值,rand_max的範圍最少是在32767之間(int),即雙位元組(16位數)。若用unsigned int 雙位元組是65535,四位元組是4294967295的整數範圍。

0~rand_max每個數字被選中的機率是相同的.

基於隨機函式,使用雙重迴圈語句便可以生成一個隨機矩陣,下面是一個10x10隨機矩陣的**,數值範圍在0~1000:

#include

#include

#define m 10

#define n 10

int main(void)

};srand(time(null));

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

}printf("array[%d][%d] is: \n", m, n);

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

printf("\n");

}return 0;}

c++如何產生0到1之間的隨機數?

5樓:匿名使用者

c++中用來產生隨機

抄數的函襲數為rand(), 其返回值為整數。

而0到1之間的隨機數,明顯是浮點數。

這樣無法直接產生。

於是,必須經過轉換。

轉換思路為,生成一個0-n的隨機數,然後對其除以n+1,則可以得到0-1直接的浮點型隨機數。

n的確定,可以與要求的精度有關,比如需要三位小數,可以採用n=999,如需要四位,則採用n=9999,以此類推。

具體操作如下:

#include

#include

void get_rand(float *p, int n)//函式功能為產生n個0-1的隨機數,儲存於陣列p中。

6樓:匿名使用者

在用rand之前,先用當前時間設定種子,即srand(time(null));

然後要得到0到1之前的,可專以

double i = rand()*1.0/rand_max;

同樣,你要得到4.1應該是屬rand()/10.0,否則兩個整數相除,得到的是整除的結果,不是double型。

7樓:匿名使用者

測試bai通過

du#include

#include

using namespace std;

int main()

system("pause");

return 0;}

8樓:匿名使用者

#include

#include

#include

void main( void )

{int i;

srand( (unsigned)time( null ) );

for( i = 0; i < 10;i++ )cout<整數

抄除以整數嘛,所以得到bai的肯定也是du個整數啊,它會強制轉zhi換為整數。dao所以你得到的是4,而不是4.1。 你要得到4.1那麼就除以10.0就可以了 。

記住在以後的除法中,要得到小數,就最好在除數中加上小數。

9樓:匿名使用者

vc中使用baisrand()來初始化為隨機du數生成器。代zhi碼例項:

#include

#include

#include

#define n 10

main()

10樓:匿名使用者

//產生0--1之間的隨機小數(精確

內到小數點

後一位)容

#include

#include

#include

void main()}

11樓:匿名使用者

z在c++中有專門來產生隨

自機數的函式bai rand()

#include

#include

using namespace std;

void main()

{int i;

srand((int)time(0));

i=(int)rand();//%m;

cout << i<節

dum的大小

zhi來得到0~m的隨dao機數;

c++ 隨機生成0到19之間的整數

12樓:匿名使用者

#include

#include

#include

main( )

如何在c++中實現隨機數(0到1)的產生(包括0和1),謝謝!

13樓:樑竹但詞

在用rand之前,先用當前時間設定種子,即srand(time(null));

然後要得到0到1之前的,可以

doublei=

rand()*1.0/rand_max;

同樣,你要得到4.1應該是rand()/10.0,否則兩個整數相除,得到的是整除的結果,不是double型。

用c++生成隨機數 為什麼每次結果都一樣 如何控制結果在0~1000之內

14樓:風若遠去何人留

1 c++的隨機數函式rand是一個偽隨機數,從固定的初始種子計算得出。所以每次執行獲取到的隨機數序列是相同的。要解決這一問題,需要設定一個隨機數種子,一般用當前時間作為種子。

**為srand(time(null));

2 要控制隨機數的範圍,可以使用模除操作,即%運算。

要控制結果在0~1000之間,可以使用**rand()%1001

具體**如下:

#include

#include

#include

int main()

{srand(time(null));

int a = rand()%1001;

cout <

15樓:

#include

#include

#include

int main()

return 0;}

16樓:淦海瑤

a[i]=rand()%1001;

用c或c++隨機生成0和1兩個整數中的一個,怎麼弄?

17樓:匿名使用者

#include //用於rand()的呼叫#include//用於srand()的呼叫#include

void main()

18樓:湛藍水晶

int a;

srand(time(0)); //初始化種子

a = rand()%2; //產生0、1之間的隨機數

19樓:閒l逛

生成隨機數,偶數就返回0,奇數就返回1

或者生成數模除2

20樓:匿名使用者

#include

#include

int main()

C怎樣生成隨機數

random類預設的無參建構函式可以根據當前系統時鐘為種子,進行一系列演算法得出要求範圍內的偽隨機數。random rd new random rd.next 1,10 生成1 10之間的隨機數,不包括10 guid 類 guid globally unique identifier 全球唯一識別符...

求高手,C,如何生成115之間的不重複的隨機數

考慮到演算法效率 你其實可以用另一種方式來實現 先生成一個1 15按順序的陣列 然後生成隨機變數種子 每次取一個在陣列長度內的隨機數 然後取出對應的數值並放到另一個陣列中 而存的那十五個數值的陣列則把該數值去除 這樣十五次就能得到了 如下 定義陣列 並給出長度 listilist new list ...

c 中生成隨機數時的種子問題,關於C 的隨機數的種子的設定問題

先糾正一下錯誤,是srand unsigned int time 0 srand的形參是unsigned int型別的 這句話只要寫一次,一般情況下只能寫一次 隨機數是隨機的數,但計算機不可能產生隨機數,計算機根據你的輸入,再跟一個演算法就產生一個特定的序列.只要你給計算機一個相同的數,計算機返回的...