一個隨機數的類c++
一個隨機數的類
這是一個生成隨機數的類。是在碼農有道c語言技術網c++中容器章節下的一道習題,這也是我第一次發表的文章,如有不當之處,敢情斧正。
下面展示程式碼。
#include <string> // string需要的標頭檔案
#include <vector> // vector需要的標頭檔案
#include <time.h>
#include <stdlib.h>
using namespace std;
class CRand
{
public:
vector<int> m_val; //用於存放隨機數的容器
void Rand(const int minvalue,const int maxvalue,const int totalcount,const bool brep=true);//CRand類的方法:用於生成一個隨機數
};
void CRand::Rand(const int minvalue,const int maxvalue,const int totalcount,const bool brep)//min隨機數的最小值; max隨機數的最大值 ;totalcount 隨機數的個數;brep 是否要重複的隨機數
{
srand(time(NULL)); //撒下種子
for(int i=0;i<totalcount;) //用於生成所需的totalcount 個數的隨機數
{
int k;
k=rand()%(maxvalue+1); //生成小於maxvalue的隨機數
if(k>=minvalue) //篩選大於minvalue的隨機數
{
if(brep) //判斷是否可以重複 (感覺可以用switch) ; true可以重複;false不可以重複;
{
m_val.push_back(k); //可以重複將得到的隨機數放入容器
i++;
}else
{
int ii;
if(m_val.size()==0) m_val.push_back(k); //開始容器裡沒有值,直接將k賦值給容器
//printf("個數=%d\n",m_val.size());
for( ii=0; ii<m_val.size();) //判斷是否有重複
{
if(k==m_val[ii])
{ break;}
ii++;
} //printf("ii的值%d\n",ii);
if(ii==m_val.size()){ //當ii等於容器值的個數便可以判斷不是重複
m_val.push_back(k);
i++;
}
}
}
}
}
int main()
{
CRand i;
i.Rand(3,8,5,false);
for(int ii=0;ii<5;ii++)
{
printf("%d\n",i.m_val[ii]);
}
return 0;
}
這是我第一次寫的程式碼,要求使隨機數的種子不能只用time(0)的秒,還可以利用微秒,同一秒內取到的隨機數將不同。我沒能寫出來,懇求各位大佬幫助。
相關文章
- C++ 隨機數C++隨機
- C++生成隨機數C++隨機
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- C++大隨機數的問題C++隨機
- 隨機數(一)隨機
- 使用Math類生成隨機數隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。隨機
- C++ 快速隨機數生成器C++隨機
- Math類產生隨機數後保留一位小數隨機
- C++【生成16個不重複字母】(生成不重複隨機數)C++隨機
- php生成一個可選位數的隨機碼PHP隨機
- C++ 11 新特性之隨機數庫C++隨機
- 生成14個可重複一次的隨機數隨機
- 生成某個範圍的隨機數隨機
- 洗牌的一個C++類! (轉)C++
- Java學習關於隨機數工具類--Random類Java隨機random
- 產生一個32位的16進位制隨機數隨機
- oracle要對一個欄位產生隨機數Oracle隨機
- 獲取兩個數之間的隨機數-java隨機Java
- 聊一聊隨機數安全隨機
- 明明的隨機數隨機
- 123 C++試寫一演算法,求隨機輸入的三個整數的最大值C++演算法隨機
- [Z]Oracle 的隨機數、隨機日期和時間、隨機字串Oracle隨機字串
- matlab 從某個範圍內隨機取出一個整數Matlab隨機
- 對於隨機數的一些分析隨機
- 當隨機不夠隨機:一個線上撲克遊戲的教訓隨機遊戲
- c++的一個int128類C++
- 【概率論】一維隨機變數隨機變數
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- 一個分數類的實現——Rational類
- C/C++程式設計知識:C++ 快速隨機數生成器C++程式設計隨機
- 封裝不同類别範本的隨機數生成器封裝隨機
- ORACLE裡的隨機數Oracle隨機
- python生成隨機數、隨機字串Python隨機字串
- java 生成一個隨機整數,範圍從 1 到 10Java隨機
- 隨機數(三)隨機
- 隨機數(二)隨機