當前位置:首頁 » 編程語言 » c語言隨機數例子
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言隨機數例子

發布時間: 2022-10-01 02:56:54

『壹』 c語言中產生隨機數

隨機數主要有兩個函數
一個種子產生函數
void
srand(int);
一個隨機數產生函數
int
rand();
當我們要產生隨機數的時候,首先我們生成一個隨機數種子(注意相同的種子產生的隨機數序列是一樣的)
然後使用rand()函數得到隨機數
祝你好運

『貳』 c語言 隨機數

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>

void createRandom(int n)
{
int i,num;
FILE *fp;
if((fp=fopen("num.txt","w")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
{
num=rand()%500+1; //產生隨機數的范圍1~500
fprintf(fp,"%-4d",num);
}
printf("產生的隨機數成功保存到文件當中.\n");
fclose(fp);
}

void selectSort(int n)
{
int i,j,k,a[100];
int *pt,temp;
FILE *fp;
pt=a;
if((fp=fopen("num.txt","r+")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
//讀取文件
while(fscanf(fp,"%d",&temp) != EOF)
{
*pt=temp;
pt++;
}
//選擇排序
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
//在屏幕列印排序後的隨機數
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
if(0 ==(i+1)%10)
printf("\n");
}
fclose(fp);
}

void display(int n)
{
int temp,i;
FILE *fp;
if((fp=fopen("num.txt","r")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
for(i=0;fscanf(fp,"%d",&temp) != EOF;i++)
{
printf("%d\t",temp);
if(0 ==(i+1)%10)
printf("\n");
}
printf("\n");
fclose(fp);
}

int main()
{
int n=100;
system("cls");
printf("生成隨機數並保存到文件中:\n");
createRandom(n);
printf("在屏幕列印產生的隨機數:\n");
display(n);
printf("在屏幕列印排序後的隨機數:\n");
selectSort(n);
return 0;
}
這是該問題的源碼,運行結果完全滿足題目的要求,你也可以在此基礎上修改一下源碼,讓它更完善些。

『叄』 C語言產生1~6的一個隨機數!!急!

代碼如下:

#include <stdio.h>


#include <stdlib.h>


#include <time.h>

int main()


{


int x,num;


srand(time( NULL ));


x =1 + (rand()%6);

printf("%d",x);

return 0;
}

源代碼截圖:

『肆』 C語言如何編程產生隨機數

樓主你好!
很高興回答你的問題!
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int num;
srand((unsigned)time(NULL));
num = rand()%100+1;
printf("%d\n",num);
return 0;
}
上面的是參數一個1到100之間的隨機數的例子!主要用到rand()函數,它能夠隨機參數一個0到unsigned int的最大值之間的一個隨機數,我們可以通過%控制隨機數參數的范圍!在使用rand()需要調用srand()種子器,不然你每次得到都是同一個數!具體用法可以去網上查查!
希望我的回答對你有幫助!
望採納!謝謝!

『伍』 用C語言產生隨機數

//你的問題可以建模為對一個包括0-99這100個數字的數組進行隨機排序//所以以下程序應該是最高效和正確的#include
#include
#include
main()
{
int
a[100],i,j,temp;
for(i=0;i<100;i++)
a[i]=i;
//將0-99的數字存入數組
srand(time(NULL));
//為隨機數提供種子
for(i=99;i>=0;i--){
j=rand()%100;//產生一個0-99的隨機數
temp=a[j];
a[j]=a[i];
a[i]=temp;
//對數組隨機排序
}
for(i=0;i<100;i++)
printf("%d
",a[i]);
//列印輸出結果
}
//經過編譯運行檢驗結果正確,符合要求

『陸』 C語言如何編程產生隨機數

1、首先打開Visual
stdio
2019,依次點擊文件,新建,項目新建以一個空白的項目:
2、新建新項目以後,右鍵點擊左邊的源文件,選擇添加,點擊添加項:
3、選擇cpp,並將下方的擴展名改為.c,然後點擊確定:
4、接下來就可以用編譯器編譯,使用rand()函數產生C語言的隨機數,需要加入stdlib.h和time.h在表頭,rand()函數需要給srand()函數提供一個參數,不然系統會給定一個默認的參數,如果參數為一任意的常量的話,得到的也是偽隨機數:
4、按ctrl+F5就可以運行程序了,在彈出的窗口中就會看到得到的所有隨機數了:

『柒』 如何用c語言產生一定范圍內的隨機數

利用srand((unsigned int)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的。

在C語言里所提供的隨機數發生器的用法:現在的C編譯器都提供了一個基於ANSI標準的偽隨機數發生器函數,用來生成隨機數。它們就是rand()和srand()函數。這二個函數的工作過程如下:

1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;

2) 然後調用rand(),它會根據提供給srand()的種子值返回一個隨機數(在0到32767之間)

3) 根據需要多次調用rand(),從而不間斷地得到新的隨機數;

4) 無論什麼時候,都可以給srand()提供一個新的種子,從而進一步「隨機化」rand()的輸出結果。

下面是0~32767之間的隨機數程序:

#include <stdlib.h>

#include <stdio.h>

#include <time.h> // 使用當前時鍾做種子

void main(void)

{int i;

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

for(i = 0; i < 10;i++) // 列印出 10 個隨機數

printf("%d ", rand() );

}

根據上面的程序可以很容易得到0~1之間的隨機數:

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

int main( )

{int i;

srand((unsigned)time( NULL ) );

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

printf("%5.2f ", rand()/32767.0);

}

而產生1~100之間的隨機數可以這樣寫:

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

int main( )

{int i;

srand((unsigned)time( NULL ) );

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

printf("%d ", rand()%100+1);

}

(7)c語言隨機數例子擴展閱讀:

C語言高效編程技巧:

一:以空間換時間

計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題

二:數學方法解決問題

數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。

三:使用位操作

實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。

在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。

『捌』 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;

}

程序運行結果如下:



(8)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;

}

『玖』 c語言,產生隨機數

用rand函數可以產生小於32767的隨機數,如果需要的隨機數范圍超過了32767,可以用rand()*rand()來產生,舉例如下:

產生0~32767范圍內的隨機數:int num = rand();
產生0-20范圍內的隨機數:int num = rand()%20;
產生0~10000000范圍內的隨機數:int num = rand()*rand()%10000000;

註:需要包含頭文件<stdlib.h>

『拾』 c語言,如何產生隨機數

1、第一步,先定義int一個數組和int一個指針變數。