干扰数
开发环境VS2005(VC8)
#include #include using namespace std ; #include #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 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; } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~