干扰数

简介: 干扰数

开发环境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;
    }    
}
相关文章
|
2月前
|
存储 监控 算法
在进行精度控制时,如何避免舍入误差的累积?
【10月更文挑战第29天】通过选择合适的精度控制方法、优化计算顺序和方式、运用误差补偿技术以及建立数据验证与监控机制等多种手段的综合运用,可以有效地避免舍入误差的累积,提高计算结果的精度和可靠性,满足各种对精度要求较高的应用场景的需求。
|
8月前
|
网络协议 Linux 网络安全
socket的心跳间隔和可用连接数的矛盾和平衡
socket的心跳间隔和可用连接数的矛盾和平衡
81 0
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目(二)
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目
|
8月前
|
人工智能 BI 测试技术
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目(一)
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目
|
8月前
|
算法 测试技术 C#
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目(三)
【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目
|
运维
查看调整cpu频率及模式
查看调整cpu频率及模式
309 2
|
数据采集 缓存 算法
m基于多属性决策判决算法的异构网络垂直切换matlab性能仿真,对比网络吞吐量,网络负载,平均切换次数,阻塞率,回报值
m基于多属性决策判决算法的异构网络垂直切换matlab性能仿真,对比网络吞吐量,网络负载,平均切换次数,阻塞率,回报值
222 0
HIMA X-CPU 01 干扰抑制–保持在给定的设定值
HIMA X-CPU 01 干扰抑制–保持在给定的设定值
HIMA X-CPU 01 干扰抑制–保持在给定的设定值
|
机器人
HIMA K9202B 用于抑制干扰和实现设定点的改变
HIMA K9202B 用于抑制干扰和实现设定点的改变
HIMA K9202B 用于抑制干扰和实现设定点的改变

相关实验场景

更多