c語言隨機整數
❶ c語言程序取隨機整數
頭文件stdlib.h中
srand,
rand兩個函數
其中
srand一般取當前時間做初始值,所以還要用
time.h
=================
srand函數是隨機數發生器的初始化函數。原型:void
srand(unsigned
seed);
用法:它需要提供一個種子,如:
srand(1);
直接使用1來初始化種子。不過常常使用系統時間來初始化,即使用
time函數來獲得系統時間,它的返回值為從
00:00:00
GMT,
January
1,
1970
到現在所持續的秒數,然後將time_t型數據轉化為(unsigned)型再傳給srand函數,即:
srand((unsigned)
time(&t));
還有一個經常用法,不需要定義time_t型t變數,即:
srand((unsigned)
time(NULL));
直接傳入一個空指針,因為你的程序中往往並不需要經過參數獲得的t數據。srand((int)getpid());
使用程序的ID(getpid())來作為初始化種子,在同一個程序中這個種子是固定的。
===============================
功
能::偽隨機數發生器所屬庫:stdlib.h用
法:
需要先調用srand初始化,一般用當前日歷時間初始化隨機數種子,這樣每次執行代碼都可以產生不同的隨機數。
函數原型:int
rand(void);
❷ c語言,如何產生隨機數
1、第一步,先定義int一個數組和int一個指針變數。
❸ 如何在C語言中生成一定范圍內的隨機數
srand((int)time(NULL));設定隨機數種子
rand()%100;產生0-99的隨機數。
高級點的,假如要產生16-59之間的數,你可以這樣寫:rand()%44+16(這里44由59-16+1得到)。其他情況如法炮製!
❹ c語言產生隨機整數
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
void main()
{
srand((unsigned)time(NULL));
int i=1,n,c,m;
n=rand()%100;
// printf("%d\n",n);
for(i=1;i<=10;i++)
{ m=11-i;
printf("請輸入你猜到的數!你有%d次機會\n",m);
scanf("%d",&c);
if(c<n)
printf("小了,再猜!");
else if(c>n)
printf("大了,再猜!");
else
{ printf("恭喜你 你猜對了!它就是%d\n",n);
break;}
}
}
❺ C語言隨機整數編程問題
int rand_init(int a,int b)
{ return (rand()%(b-a+1)+a);
}
主函數 初始化 隨機數
自定義函數 里 產生 隨機數
❻ 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 的具體數值做任何假設。
(6)c語言隨機整數擴展閱讀:
相關說明:
1、因為rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機。
2、為了使程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
3、隨機種子(Random Seed)是計算機專業術語,一種以隨機數作為對象的以真隨機數(種子)為初始條件的隨機數。一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然後用一定的演算法不停迭代產生隨機數。
❼ C語言怎麼弄隨機整數
#include <stdio.h>
#include <time.h> //提供time()函數的原型
#include <stdlib.h> //提供rand(),srand()函數的原型
int main()
{
int a;
srand(time(0)); //隨機數產生初始化
a= rand()%1000;//產生1--1000之間的隨機數
printf("%d\n",n);
return 0;
}
❽ c語言生成10個不重復的隨機整數,並輸出
#include<stdio.h>
#include<time.h>
#defineelemTypeint/*元素類型*/
#defineLEN100/*數組長度上限*/
/*生成n項min~max范圍的隨機數並存入數組randArr*/
voidrandomArray(elemTyperandArr[LEN],intn,elemTypemin,elemTypemax){
inti;
srand((unsigned)time(NULL));/*用時間做種,每次產生隨機數不一樣*/
for(i=0;i<n;i++)
randArr[i]=rand(NULL)%(max-min+1)+min;/*產生min~max的隨機數*/
}
/*列印數組*/
voidprintArr(elemTypearr[],intlen){
inti;
for(i=0;i<len;i++)
printf("%d ",arr[i]);
putchar(' ');
}
intmain(void){
elemTypearr[LEN];
intlen=10;/*10個隨機數*/
randomArray(arr,len,1,50);/*隨機生成數組內容*/
printArr(arr,len);
putchar(' ');
getch();/*屏幕暫留*/
return0;
}
運行結果
❾ 怎麼用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;
}
程序運行結果如下:
(10)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;
}