當前位置:首頁 » 編程語言 » c語言取隨機

c語言取隨機

發布時間: 2022-09-13 06:07:36

1. c語言抽取隨機數怎麼編寫

源程序代碼以及演算法解釋如下:

產生1-10隨機數程序:

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

const int n = 10;//定義隨機數個數

int number[n] = { NULL };//定義隨機數存儲的數組

srand((unsigned)time(NULL));//初始化隨機函數

number[0] = rand() % n;//第一個隨機數無需比較

cout << number[0] << " ";

for (int i = 1; i < n; i++)//其餘隨機數循環產生

{

int j = 0;

number[i] = rand() % n;//產生隨機數

while (1)

{

if (number[i] == number[j])//若有相同則繼續循環重新安排隨機數

{

number[i] = rand() % n;//產生隨機數

j = 0;//若遇到相同的就從頭遍歷

continue;

}

if (j == (i - 1))//若遍歷完就跳出

break;

j++;

}

cout << number[i] << " ";

}

cout << endl;

return 0;

}

程序運行結果如下:



(1)c語言取隨機擴展閱讀:

利用vector進行隨機數輸出:

#include <iostream>

#include <vector>

#include <time.h>

using namespace std;

int main()

{

const int n = 10;

int randnum;

vector<int> number;

for (int i = 0; i < n; i++)

{

number.push_back(i + 1);//從尾部添加元素

cout << number[i] << " ";

}

cout << endl;

srand((unsigned)time(NULL));

for (int j = 0; j < n; j++)//其餘隨機數循環產生

{

randnum = rand() % (n - j);//rand函數生成的隨機數是0-(n-1)

cout << number.at(randnum) << " ";

number.erase(number.begin() + randnum);

}

cout << endl;

return 0;

}

2. 如何用C語言編一個取隨機數的程序

#include
<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int
a;
srand(time(0));
a=rand()%100+1;/*這個a的值就是你要的隨機整數,100表示生成數的范圍,可自己改,要生成多個的話只要用循環就行了*/
printf("%d\n",a);
}

3. C語言中獲得隨機數的方法是什麼

可以使用庫函數rand()。
rand聲明於stdlib.h,其原型為

int rand(void);
功能為返回一個隨機整型值。在C語言中,該值是一個正數值。

在需要限定獲取到的隨機數范圍時,如范圍要求為[m,n] m<n且m,n均為整數,可以用
rand()%(n-m+1)+m
的形式進行獲取。原理為:
%為取余計算,當%k時,結果是[0,k-1]之間的數值;
於是rand()%(n-m+1) ∈ [0, n-m];
所以rand()%(n-m+1)+m ∈ [0+m, n-m+m]=[m,n]。

4. 怎麼用C語言生成隨機數

假設要生成的隨機數是大於等於20且小於等於100的整數

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用當前時間生成一個隨機數種子
x=rand()%(b-a+1)+a;
printf("得到一個隨機數:%d ",x);
}

5. 怎樣用c語言取一個隨機數

例如:
#include<stdlib.h>
int
i;
i=rand()%10;
就是取0到10(不包括10)之間的隨機數

6. 怎樣用c語言取一個隨機數

#include
#include
#include
int
main()
{
int
num;
srand(time(0));
//必須要用這個
num
=
1
+
rand()
%
10;
//在[1,10)中隨機出一個數字
printf("%d",num);
return
0;
}
頭文件不能少

7. C語言中如何選取隨機的數據

srand(time(0));
int
a
=
1
+
(int)rand()/RAND_MAX*99;
在一個數組里把抽取過的數放進去,每次抽時與裡面的比較。有相同的重新抽取就可以了。

8. C語言中獲得隨機數的方法

問題1: 怎樣獲得一個真正的隨機數?要知道,rand()是不能產生真正的隨機數的!即使不能產生真正的隨機數,也要大概接近呀!而rand()好象每次的隨機都一樣。

專家解答:

之所以rand()每次的隨機數都一樣是因為rand()函數使用不正確。各種編程語言返回的隨機數(確切地說是偽隨機數)實際上都是根據遞推公式計算的一組數值,當序列足夠長,這組數值近似滿足均勻分布。如果計算偽隨機序列的初始數值(稱為種子)相同,則計算出來的偽隨機序列就是完全相同的。這個特性被有的軟體利用於加密和解密。加密時,可以用某個種子數生成一個偽隨機序列並對數據進行處理;解密時,再利用種子數生成一個偽隨機序列並對加密數據進行還原。這樣,對於不知道種子數的人要想解密就需要多費些事了。當然,這種完全相同的序列對於你來說是非常糟糕的。要解決這個問題,需要在每次產生隨機序列前,先指定不同的種子,這樣計算出來的隨機序列就不會完全相同了。你可以在調用rand()函數之前調用srand( (unsigned)time( NULL ) ),這樣以time函數值(即當前時間)作為種子數,因為兩次調用rand函數的時間通常是不同的,這樣就可以保證隨機性了。你也可以使用srand函數來人為指定種子數。Windows 9x/NT的游戲FreeCell就允許用戶指定種子數,這樣用戶如果一次游戲沒有成功,下次還可以以同樣的發牌結果再玩一次。

問題2: 我按照上述方法並不能產生隨機數,僅產生公差為3或4的等差數列:
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <time.h>
void main()
{
for(int i=0;i<100000;i++)
{
srand( (unsigned)time( NULL ) );
cout<<rand()<<endl;
}
}
專家解答:
你的程序是有問題的,你每產生一個隨機數之前,都調用一次srand,而由於計算機運行很快,所以你每次用time得到的時間都是一樣的(time的時間精度較低,只有55ms)。這樣相當於使用同一個種子產生隨機序列,所以產生的隨機數總是相同的。你應該把srand放在循環外:
srand( (unsigned)time( NULL ) );
for(int i=0;i<100000;i++)
{
//相關語句
}

9. c語言中在給出的數據中隨機取數

#include

#include

#include

int
main(
)
{
int
i;
double
num
[10]=
{
1.2,
1.5,
3.5,
4.7,
2,
3,
4,
5,
6,
7
};
//
……
srand(
(unsigned)time(
NULL
)
);
//
先產生一個0

num-1
的隨機數,從你的數據數組中取那個就行了。
//
產生方法rand()
%
10,產生10以內隨機數。
//
比如下面產生10個隨機數,及其對應的你
的數據
for(
i
=
0;
i
<
10;i++
)
printf(
"i
=
%d,
num[i]
=
%lf\n",
rand()%10,
num[i]
);
return
0;
}

10. 怎樣用c語言取一個隨機數

例如:
#include<stdlib.h>
int i;
i=rand()%10;
就是取0到10(不包括10)之間的隨機數

熱點內容
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:513
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:347
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:212
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:928
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:828
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840
vb6遍歷文件夾 發布:2025-01-12 05:58:13 瀏覽:365
c在C語言中代表什麼 發布:2025-01-12 05:52:59 瀏覽:48