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型別的 這句話只要寫一次,一般情況下只能寫一次 隨機數是隨機的數,但計算機不可能產生隨機數,計算機根據你的輸入,再跟一個演算法就產生一個特定的序列.只要你給計算機一個相同的數,計算機返回的...