rand編程
⑴ c語言編程:使用隨機函數rand()產生50個10~99的互不相同的隨機整數
可以先給89 個數組賦值10 至99然後第一次隨機1至89然後取出隨機那個數的下標的值,把最後一個賦值給你剛才隨機的數字下標,第二次從1至88隨機一個數字,依次類推,循環五十次可以得到五十個不相同的。因為手機,沒辦法給出代碼,敬請諒解
⑵ c語言random()的問題
srand((int)time(NULL))用於設定隨機數種子。rand()%100,產生0-99的隨機數。如果要產生16-59之間的數,可以這樣寫:rand()%44+16(這里44由59-16+1得到)。其他情況與此雷同。
rand()是不能產生真正的隨機數的。即使不能產生真正的隨機數,也要大概接近。而rand()好象每次的隨機都一樣。之所以rand()每次的隨機數都一樣是因為rand()函數使用不正確。
各種編程語言返回的隨機數(確切地說是偽隨機數)實際上都是根據遞推公式計算的一組數值,當序列足夠長,這組數值近似滿足均勻分布。
(2)rand編程擴展閱讀
調用隨機數函數 rand()() 的時候, 實際得到的這個隨機數並不是絕對隨機的,它是以一個初始值,通過一個演算法,計算出來的「偽隨機數"數列,每次調用rand()()時,從這個數列依次取出一個值,做為隨機數。
這個初始的值就是"隨機數種子", 也就是說,如果隨機數種子相同,計算出的隨機數數列是相同的。而srand()om( x) 這個函數就是初始化隨機數產生器,設定隨機數種子用的。給定的x的就是隨機數種子。可以驗證,當你多次調用srandm(x)時,如果x取值相同,則得到的隨機數數列是一樣的。
所以,若我們每次運行程序時,要得到不同的隨機數序列,就應該用不同的種子來初始化這個隨機數產生器。比如說,用時間初始化它,或者用getpid(),用進程的pid號初始化,由於每次運行程序時,它的pid號一般是不同的,所以能夠產生不同的隨機數序列。
⑶ c語言中rand()函數怎麼用
rand函數功能為獲取一個偽隨機數(偽隨機數的概念下面會有介紹)。
一、函數名:
rand();
二、聲明:
int rand();
三、所在頭文件:
stdlib.h
四、功能:
返回一個偽隨機數。之所以說是偽隨機數,是因為在沒有其它操作下,每次執行同一個程序,調用rand得到的隨機數序列是固定的(不是真正的「隨機」)。
五、為了使rand的結果更「真」一些,也就是令其返回值更具有隨機性(不確定性),C語言在stdlib.h中還提供了srand函數,通過該函數可以設置一個隨機數種子,一般用當前時間的毫秒數來做參數。通過time(NULL)可以獲取到當前時間的毫秒值(該函數位於time.h)中。
六、使用rand的流程可以總結為:
1 調用srand(time(NULL))設置隨機數種子。
2 調用rand函數獲取一個或一系列隨機數。
需要注意的是,srand只需要在所有rand調用前,被調用一次即可,沒必要調用多次。
七、以下是隨機獲取10個整型值並輸出的例子,輔助理解。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inti;
srand(time(NULL));//設置隨機數種子。
for(i=0;i<10;i++)//運行10次。
printf("%d ",rand());//每次獲取一個隨機數並輸出。
return0;
}
⑷ C語言 編寫程序利用rand()函數產生50個100以內的隨機數,將其中的奇數寫入當前目錄下的"A.TXT"文件中
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
int i,j;
int x[50];
int n=50;
FILE *fp;
srand((unsigned)time(NULL));
// 用當前時間來產生隨機數種子,這樣每次用本程序產生的隨機數序列 將不同,更隨機。
for(i=0;i<n;i++) {
x[i] = rand() % 100; // 產生 0-99 之間的隨機數,% 是整除 取余數 運算
}
fp=fopen("A.TXT","w"); //打開文件
for(i=0;i<n;i++) {
if (x[i]%2==1) fprintf(fp,"%d\n",x[i]); // 除2餘數為1的是奇數,輸出它
}
fclose(fp); //關閉文件
printf("the 50 rand numbers:\n");
for(i=0;i<n;i++) {printf("%2d ",x[i]); if ( (i+1)%10==0) printf("\n");} // 屏幕輸出這50個隨機數
printf("\nOdd rand numbers are saved in A.TXT\n");
return 0;
}
⑸ C璇璦錛屼嬌鐢╮and錛堬級鍑芥暟錛岀紪鍐欑▼搴忥紝闅忔満杈撳嚭鍚屽︿滑鐨勫撳悕鍜屽﹀彿錛屽湪綰跨瓑銆傘傘傘傘
#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*fp;
charname[15];
charnum[15];
charch;
intn=0,m;
unsignedintbb;
fp=fopen("student.txt","r");
while(!feof(fp))
{
ch=fgetc(fp);
if(ch==' ')n++;
}//緇熻′漢鏁
fclose(fp);
bb=time(0);
srand(bb);
m=rand()%n+1;
n=0;
fp=NULL;
fp=fopen("student.txt","r");
while(!feof(fp)&&n<m)
{
n++;
fscanf(fp,"%s%s",name,&num);
}
printf("闅忔満鎶藉彇錛%s%s ",name,num);
fclose(fp);
system("pause");
}