Ⅰ c語言,如何產生隨機數
1、第一步,先定義int一個數組和int一個指針變數。
Ⅱ 怎麼用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);
}
Ⅲ 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;
}
Ⅳ C語言中如何生成一個隨機數組
代碼: #include<time.h>
#include<stdlib.h>
#include<stdio.h>void main()
{
srand( (unsigned)time( NULL ) );
int a[100];
printf("隨即初始化數組的100個數(范圍是0~100).\n");
for(int i=0;i<100;i++)
{
a[i]=rand()%101;
printf("%4d",a[i]);
if(i%10==0 && i!=0)
printf("\n");
}
getchar();
}
圖:
Ⅳ c語言中如何生成1個0到1的隨機數
C語言中生成1個0到1的隨機數可以執行語句:float b=rand()/(RAND_MAX+1.0);
解析:
標准C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。rand()函數沒有輸入參數,直接通過表達式rand()來引用;
用函數rand取得的隨機數除以(RAND_MAX+1.0),即可確保得到的結果在0到1之間。ISO IEC 9899 2011 (C11)標准中未規定 RAND_MAX 的具體數值。但該標准規定了RAND_MAX 的值應至少為32767。編程的時候,不應該對 RAND_MAX 的具體數值做任何假設。
(5)c語言隨機數組製作擴展閱讀:
相關說明:
1、因為rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機。
2、為了使程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
3、隨機種子(Random Seed)是計算機專業術語,一種以隨機數作為對象的以真隨機數(種子)為初始條件的隨機數。一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然後用一定的演算法不停迭代產生隨機數。
Ⅵ C語言怎樣產生一定范圍的隨機數
在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,可以稱它為種子。
為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數。
C語言產生一定范圍的隨機數的源代碼如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for(i=0; i<10; i++) //隨機產生10個數。
{
printf("%d ", rand());
}
return 0;
}
(6)c語言隨機數組製作擴展閱讀
1、如果要隨機生成一個在一定范圍的數,你可以在宏定義中定義一個random(int number)函數,然後在main()裡面直接調用random()函數。
2、在對rand()的前三次調用中,並且此後得到的返回值仍然是在對rand()的第一批調用中所得到的其餘的返回值。因此,只有再次給srand()提供一個隨機的「種子」值,才能再次得到一個隨機數。
Ⅶ C語言 如何隨機生成數組
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{ int n,i,*a,max;
printf("請輸入數組的大小:");
scanf("%d",&n);
printf("請輸入最大隨機數的大小:");
scanf("%d",&max);
a=(int*)malloc(n*sizeof(n));
srand(time(0));
for(i=0; i<n; i++)
{ a[i]=rand()%(max+1);
printf("%8d",a[i]);
}
return 0;
}
Ⅷ C語言如何編程產生隨機數
1、首先打開Visual stdio 2019,依次點擊文件,新建,項目新建以一個空白的項目:
Ⅸ 如何製作隨機數 C語言……
首先使用srand(unsigned
int)
函數
設置種子,然後使用rand()返回一個
隨機數
。
使用這兩個函數時需要包含頭文件
#include <stdlib.h>
1、在標準的C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX
是stdlib.h
中定義的一個
整數
,它與系統有關;
2、因為rand()函數是按指定的
順序
來產生整數,因此每次執行上面的
語句
都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數;
3、通常通過為隨機數
生成器
提供一個新的
隨機種子
來達到使
程序
在每次執行時都能生成一個新
序列
的隨機值的效果。函數
srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器;
示例代碼:
#include <time.h> //用到了time函數
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i, number;
srand((unsigned int) time(NULL)); //用時間做種,每次產生隨機數不一樣
for (i=0; i<10; i++)//產生10個隨機數
{
number = rand() % 12 + 1;//產生1-13的隨機數
printf("%d\n", number);
}
return 0;
}
Ⅹ 如何在c語言中生成定和的隨機數組
這種需求最好是使用遞歸結構,比如你想要和是100的一組隨機數,第一次隨機可以使用100去模 rand()從而產生小於100的一個隨機數,第二次需要100減去上次產生的隨機數結果然後再去模 rand()。依次類推,每一次產生隨機數都需要使用上一次的結果,然後用100去減它,然後在模 rand()。所以最方便的就是遞歸函數了。
大概的偽代碼
int my_rand(int last_rand)
{
int ret;
ret = (100-last_rand)%rand();
ret放入數組中;
my_rand(ret);
retrun ret;
}