当前位置 : 主页 > 编程语言 > java >

干扰数

来源:互联网 收集:自由互联 发布时间:2022-07-22
开发环境VS2005(VC8) #include iostream #include vector using namespace std ; #include time.h #define ULONG unsigned long //干扰数的意义 //当要连续调用rand的时候,几个rand关联性太强,可以rand()+干扰数 class IG



开发环境VS2005(VC8)

#include <iostream>

#include <vector>

using namespace std ;

#include <time.h>


#define ULONG unsigned long


//干扰数的意义

//当要连续调用rand的时候,几个rand关联性太强,可以rand()+干扰数

class IGanRaoShu //干扰数,取一个数,分布没有任何规律,可以重复。配合随机数,防止随机数规律过强。

{

public:

virtual ULONG GetGanRao()= 0;

};


class CGanRaoShu : public IGanRaoShu

{

public:

typedef long (* GANRAO_FUN)() ;


CGanRaoShu()

{

m_iPos = 0 ;

};

ULONG GetGanRao()

{

if( 0 == m_pFuns.size() )

return 0;

m_iPos = ( m_iPos + 1 ) % m_pFuns.size();

return m_pFuns[m_iPos]();

};

void AddGanRaoFun(GANRAO_FUN pFun)

{

m_pFuns.push_back(pFun);

};

protected:

std::vector<GANRAO_FUN> m_pFuns;

int m_iPos ;

};


long GetCurTime()

{

return time(NULL);

}


void main()

{

CGanRaoShu g ;

g.AddGanRaoFun(clock);

g.AddGanRaoFun(GetCurTime);

for( int i = 0 ; i < 100 ; i++ )

{

cout << g.GetGanRao() << endl;

}

}
上一篇:C++ 程序员,安卓开发注意事项
下一篇:没有了
网友评论