回溯(穷举)计算碰撞概率

摘要:有5个模块在30s内发送信号,发送需要3s时间。假设每个模块都在整数秒开始发送,求发送不碰撞的概率.
基本思路:穷举所有发送不碰撞的可能组合,然后除以所有发送组合.

#define Seconds 30
#define Modules 5
int solve(int T,int modules)
{
    int sum = 0;
    if(modules == 0)
        return 1;

    else
    {
        for(;T<=Seconds-3*modules;T++)
            sum += solve(T+3,modules-1);
    }
             return sum;
}

int _tmain(int argc, _TCHAR* argv[])
{

    int sum;
    double P ;
    sum = solve(0,Modules);
    P =sum;
    for(int i = 1;i<=Modules;i++)
        P = P/(Seconds-3);

    return 0;
}

结论:概率为0.0108;不采取相关通信协议碰撞几乎是必然的.

你可能感兴趣的:(回溯(穷举)计算碰撞概率)