1. c語言隨機抽取命令
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
long a[10000]={0},num;
int i,count=0,countNum=0;
time_t start=0,end=0;
srand((unsigned)time(NULL));
for(i=0; i<10000;i++)
{
a[i]=rand()%100000+1;
printf("%ld ", a[i]);
count++;
if(count%10==0) printf("\n");
}
printf("\n請您輸入需要查找的數:\n");
scanf("%ld",&num);
printf("\n您需要查找的數在以下位置出現:\n");
start=time(NULL);
for(i=0; i<10000;i++)
{
if(num==a[i])
{
printf("第%d個\n",i+1);
countNum++;
}
}
end=time(NULL);
printf("共出現了%d次,累計查找時間為%d秒。\n",countNum,start-end);
getch();
}
由於查詢速度很快,所以精確到秒級的計時都為0
2. 在c語言中如何實現:在元素組中隨機抽取幾個元素
弄一個數組,用某種規則的數據把它填滿。然後庫函數rand生成下標范圍內的隨機數,以此隨機數為下標取得數組中的數據即可。
3. 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;
}
程序運行結果如下:
(3)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;
}
4. C語言中如何選取隨機的數據
srand(time(0));
int
a
=
1
+
(int)rand()/RAND_MAX*99;
在一個數組里把抽取過的數放進去,每次抽時與裡面的比較。有相同的重新抽取就可以了。
5. C語言中100個數中隨機選取10個不同的數如何實現
首先要確定這100個數的范圍,比如0-99。
然後抽取隨機數,並利用模除限定范圍,每當抽取到一個新的數時,同歷史數據比較,如果有重復則放棄。 直到抽取到不重復的10個數為止。
示例代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[10];//存儲結果。
inti,j;
srand(time(NULL));//通過獲取時間值來設定隨機數種子,以保證每次運行結果不同。
for(i=0;i<10;)//注意,第三項留空,因為需要判斷每次得到的數值是否重復,如重復則不進行i的自加
{
a[i]=rand()%100;//得到一個0-99中的隨機數。
for(j=0;j<i;j++)
if(a[j]==a[i])break;//發現重復,結束內循環
if(j==i)i++;//如果i和j相等,代表內循環是達到條件退出的,即不是通過break,也就是沒有重復項。
}
for(i=0;i<10;i++)//輸出得到的數值。
printf("%d,",a[i]);
printf(" ");
return0;
}
以下是運行該程序三次分別得到的結果(每行一次),可以看到是實現了所有功能的。
96,84,85,30,29,97,92,51,38,81,
49,42,13,18,24,1,75,91,60,5,
68,16,23,79,17,59,83,82,34,70,
6. 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;
}
7. C語言中取隨機數的函數
1. 基本函數
在C語言中取隨機數所需要的函數是:
int rand(void); void srand (unsigned int n);
rand()函數和srand()函數被聲明在頭文件stdlib.h中,所以要使用這兩個函數必須包含該頭文件:
#include <stdlib.h>
2. 使用方法
rand()函數返回0到RAND_MAX之間的偽隨機數(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等於32767,或者更大。
srand()函數使用自變數n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然後調用rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函數的種子,就可以避免重復的發生。如果,調用rand()之前沒有先調用srand(),就和事先調用srand(1)所產生的結果一樣。
舉個例子,假設我們要取得0~10之間的隨機整數(不含10本身):
/* 例1:不指定種子的值 */
for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:1 7 4 0 9 4 8 8 2 4
/* 例2:指定種子的值為1 */
srand(1); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:1 7 4 0 9 4 8 8 2 4
例2的輸出結果與例1是完全一樣的。
/* 例3:指定種子的值為8 */ srand(8); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
每次運行都將輸出:4 0 1 3 5 3 7 7 1 5
該程序取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次運行程序的結果都相同。
/* 例4:指定種子值為現在的時間 */ srand((unsigned)time(NULL)); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }
該程序每次運行結果都不一樣,因為每次啟動程序的時間都不同。另外需要注意的是,使用time()函數前必須包含頭文件time.h。
3. 注意事項
求一定范圍內的隨機數。
如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。
randnumber = rand() % 10;
那麼,如果取的值不是從0開始呢?你只需要記住一個通用的公式。
要取[a,b)之間的隨機整數(包括a,但不包括b),使用:
(rand() % (b - a)) + a
偽隨機浮點數。
要取得0~1之間的浮點數,可以用:
rand() / (double)(RAND_MAX)
如果想取更大范圍的隨機浮點數,比如0~100,可以採用如下方法:
rand() /((double)(RAND_MAX)/100) 其他情況,以此類推,這里不作詳細說明。
8. 從一組數中隨機選取的C語言編程代碼
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#defineMAX100//100個數足夠雙色球使用,如果雙色球的個數多餘這個數請設置
voidmain()
{
intinput[MAX]={0};
intcount=0;
intm=0;
printf("請輸進球的個數 ");
scanf("%d",&count);
printf("請輸入每個雙色球的編號 ");
for(inti=0;i<count;i++)
scanf("%d",&input[i]);
printf("請輸入需要產生的隨機數的個數m:");
scanf("%d",&m);
srand((int)time(0));//這一步很重要要設置隨機數種子否則每輪產生的隨機數序列是相同的
intindex=0;
for(intj=0;j<m;j++)
{
index=rand()%count;
printf("被選中的球的號碼是%d ",input[index]);
}
scanf("%d",&m);
}
9. C語言-怎樣進行隨機取值
有srand 和 rand函數,來進行。給你舉個例子,隨機取1-100 的一個數
#include <stdlib.h>
#include <stdio.h>
int
main(void)
{
int val;
srand((unsigned int)time((time_t *)0));
val = rand()%100;
printf("val = %d\n", val);
return 0;
}
10. C語言中如何隨機選取數組中的數字(程序代碼請寫出)
應該是a[2][3]={{1,3,2},{8,0,3}} 吧
#include <iostream> //cout函數的頭文件
#include <cstdlib>
#include <time.h> /* srand函數與rand函數的頭文件*/
using namespace std;
int main()
{
int a[2][3]={{1,3,2},{8,0,3}},x,y,z;
srand ( (unsigned) time (NULL) );
x=rand()%2; //調用隨機函數
y=rand()%3; //調用隨機函數
z=a[x][y];
cout<<z<<"\n";
system ("pause");
return 0;
}
三樓,請注意素質...
那是我的版權!!
樓主,一定要注意先來後到!
我本是2樓的,後因稍作修改,沒想到3樓抄襲我。。。