精华内容
下载资源
问答
  • <div><p>位置成词概率是你这里说的:最后输出 词,词频,互信息,左右熵,位置成词概率.</p><p>该提问来源于开源项目:sing1ee/dict_build</p></div>
  • 第一次重传失败的概率是0.5,第二次是0.25,第三次是0.125…… 在[0,1]之间选数字的时候,它们选择了相同的数字,都选1或者都选0 ,pA=(1/2*1/2);pB=(1/2*1/2);总得就是PA+PB=0.5; 第二次又失败了,说明第一...

    第一次重传失败的概率是0.5,第二次是0.25,第三次是0.125……

    在[0,1]之间选数字的时候,它们选择了相同的数字,都选1或者都选0 ,pA=(1/2*1/2);pB=(1/2*1/2);总得就是PA+PB=0.5;

    第二次又失败了,说明第一次是失败的,第二次在[0,1,2,3]之间选择数字p=2*(1/2*1/2)*4*(1/4*1/4)


    一、CSMA/CD过程

           CSMA/CD就像在没有主持人的座谈会中,所有的参加者都通过一个共同的媒介(空气)来相互
    交谈。每个参加者在讲话前,都礼貌地等待别人把话讲完。如果两个客人同时开始讲话,那么他们都
    停下来,分别随机等待一段时间再开始讲话。这时,如果两个参加者等待的时间不同,冲突就不会出
    现。如果传输失败超过一次,将采用退避指数增长时间的方法(退避的时间通过截断二进制指数退避
    算法(truncated binary exponential backoff)来实现)。(摘自维基百科)


    二、二进制指数退避算法

    1)确定基本退避时间(基数),一般定为2τ,也就是一个争用期时间,对于以太网就是51.2μs
    2)定义一个参数K,为重传次数,K=min[重传次数,10],可见K≤10
    3)从离散型整数集合[0,1,2,……,(2^k-1)]中,随机取出一个数记做R
        那么重传所需要的退避时间为R倍的基本退避时间:即:T=R×2τ。
    4)同时,重传也不是无休止的进行,当重传16次不成功,就丢弃该帧,传输失败,报告给高层协议

    三、举例

    如果第二次发生碰撞: 
    n = 2 
    k = MIN(2,10) = 2 
    R = {0, 1, 2, 3) 
    延迟时间 = {0, 51.2 us, 102.4 us, 153.6 us} 其中任取一值


    展开全文
  • C(6,3)=6!/3!3!=20n!=1*2*3*4*...*n 转载于:https://www.cnblogs.com/telwanggs/p/7911570.html

    C(6,3)=6!/3!3!=20
    n!=1*2*3*4*...*n

    转载于:https://www.cnblogs.com/telwanggs/p/7911570.html

    展开全文
  • 每行有四个数,Speakless手上的糖果数N、Gardon手上的糖果数M(0,M)、一局Speakless能解答出来的概率p、一个问题Gardon能解答出来的概率q(0<=p,q)。 Output 每行一个数,表示Speakless能赢的概率(用百分比...
  • 首先有个比较难受的地方是它一个回合可能不止扣一滴血……我们得出\(P_i\)表示一回合扣\(i\)滴血的概率,为 \[P_i={{k\choose i}m^{k-i}\over (m+1)^k}\] 所以这个柿子啥意思? 我们可以把\(k\)次扣血看成一个长度...

    题面

    传送门(loj)

    传送门(洛谷)

    题解

    模拟赛的时候只想出了高斯消元然后死活不知道怎么继续……结果正解居然就是高斯消元卡常?

    首先有个比较难受的地方是它一个回合可能不止扣一滴血……我们得算出\(P_i\)表示一回合扣\(i\)滴血的概率,为

    \[P_i={{k\choose i}m^{k-i}\over (m+1)^k}\]

    所以这个柿子啥意思?

    我们可以把\(k\)次扣血看成一个长度为\(k\)的序列,每个序列有\(m+1\)种选择方法,于是总的选法就是\((m+1)^k\)。我们要钦定它扣\(i\)滴血,就是令其中\(i\)个数强制选择\(1\),方案数为\({k\choose i}\)。剩下的数都不能选\(1\),所以方案数为\(m^{k-i}\)

    有了这个\(P_i\)我们就可以考虑找关系了

    然而这里还有一个很讨厌的地方就是它时不时会被奶一口……

    我们记\(f_i\)表示当血量为\(i\)时被干掉的期望回合数,\(g_i\)表示一回合内打出伤害大于等于\(i\)的概率,然后考虑这东西该怎么转移

    \[f_i={m\over m+1}\left(g_i+\sum_{k=0}^{i-1}P_k(f_{i-k}+1)\right)+{1\over m+1}\left(g_{i+1}+\sum_{k=0}^{i}P_k(f_{i+1-k}+1)\right)\]

    边界条件为

    \[f_n=g_n+\sum_{k=0}^{n-1}P_k(f_{n-k}+1)\]

    所以这柿子是啥?

    \({m\over m+1}\)表示没有被奶到的概率,那么我们枚举它被\(A\)了几下。如果它一回合被干掉了,那么期望局数为\(1\),否则\(A\)\(k\)下之后血量会到\(i-k\),这一部分的期望步数就是\(f_{i-k}+1\)。后面那个就是如果被奶了之后的情况。顺便因为满血的时候是不可能被奶的,所以\(f_n\)要特殊考虑

    然而这柿子一点都不好看,特别是\(g_i\)很不爽,那就继续推倒

    \[f_i={m\over m+1}\left(g_i+\sum_{k=0}^{i-1}P_k+\sum_{k=0}^{i-1}P_kf_{i-k}\right)+{1\over m+1}\left(g_{i+1}+\sum_{k=0}^{i}P_k+\sum_{k=0}^{i}P_kf_{i+1-k}\right)\]

    \[f_i={m\over m+1}\left(1+\sum_{k=0}^{i-1}P_kf_{i-k}\right)+{1\over m+1}\left(1+\sum_{k=0}^{i}P_kf_{i+1-k}\right)\]

    同理有\(f_n=1+\sum_{k=0}^{n-1}P_kf_{n-k}\)

    那么我们就可以愉快地递推……等会儿这咋推啊……转移好像都成环了啊……

    那么我们就把它看成一个方程组来高斯消元求解吧

    哈?\(n=1500\)你让我高斯消元?

    我们来好好观察一下这个方程组,\(f_i\)所对应的方程只与\(f_1,...f_{i+1}\)的值有关,也就是说每一行的对角线右边只有在它右边一位的那个系数不为\(0\)

    因为我们高斯消元的时候是拿自己这行去减下面的,所以每一行中只有\(2\)个系数要去和下面的相减,复杂度就能化到\(O(n^2)\)

    虽然我还是不知道这个复杂度是怎么过去的

    //minamoto
    #include<bits/stdc++.h>
    #define R register
    #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
    #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
    #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
    template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
    using namespace std;
    char buf[1<<21],*p1=buf,*p2=buf;
    inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
    int read(){
        R int res,f=1;R char ch;
        while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
        for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
        return res*f;
    }
    char sr[1<<21],z[20];int K=-1,Z=0;
    inline void Ot(){fwrite(sr,1,K+1,stdout),K=-1;}
    void print(R int x){
        if(K>1<<20)Ot();if(x<0)sr[++K]='-',x=-x;
        while(z[++Z]=x%10+48,x/=10);
        while(sr[++K]=z[Z],--Z);sr[++K]='\n';
    }
    const int N=1505,P=1e9+7;
    inline int add(R int x,R int y){return x+y>=P?x+y-P:x+y;}
    inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
    inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
    int ksm(R int x,R int y){
        R int res=1;
        for(;y;y>>=1,x=mul(x,x))if(y&1)res=mul(res,x);
        return res;
    }
    int a[N][N],ans[N],s[N],inv[N],g[N];
    int n,m,p,k,T,qwq,aa,bb,tmp,res;
    void init(int n){
        inv[0]=inv[1]=1;
        fp(i,2,n)inv[i]=mul(P-P/i,inv[P%i]);
    }
    void Gauss(int n){
        fp(i,1,n-1){
            int t=ksm(a[i][i],P-2);
            a[i][i]=1,a[i][n]=mul(a[i][n],t);
            if(i!=n-1)a[i][i+1]=mul(a[i][i+1],t);
            fp(j,i+1,n-1){
                t=a[j][i],a[j][i]=0;
                a[j][i+1]=dec(a[j][i+1],mul(t,a[i][i+1])),
                a[j][n]=dec(a[j][n],mul(t,a[i][n]));
            }
        }
        ans[n-1]=a[n-1][n];
        fd(i,n-2,1)ans[i]=dec(a[i][n],mul(a[i][i+1],ans[i+1]));
    }
    int main(){
    //  freopen("testdata.in","r",stdin);
        T=read();
        init(N-5);
        while(T--){
            n=read(),p=read(),m=read(),k=read();
            if(!k||(!m&&k==1)){puts("-1");continue;}
            if(!m){
                while(p>0){if(p<n)++p;p-=k,++res;}
                printf("%d\n",res),res=0;continue;
            }
            qwq=ksm(m+1,k),qwq=ksm(qwq,P-2)%P,tmp=1;
            fp(i,0,n)s[i]=0;
            fp(i,0,min(n,k)){
                s[i]=1ll*tmp*ksm(m,k-i)%P*qwq%P;
                tmp=1ll*tmp*inv[i+1]%P*(k-i)%P;
            }
            memset(a,0,sizeof(a));
            bb=ksm(m+1,P-2),aa=mul(m,bb);
            fp(i,1,n-1){
                ++a[i][i],++a[i][n+1];
                fp(j,0,i-1)a[i][i-j]=dec(a[i][i-j],mul(s[j],aa));
                fp(j,0,i)a[i][i+1-j]=dec(a[i][i+1-j],mul(s[j],bb));
            }
            ++a[n][n],++a[n][n+1];
            fp(j,0,n-1)a[n][n-j]=dec(a[n][n-j],s[j]);
            Gauss(n+1);
            printf("%d\n",ans[p]);
        }
        return 0;
    }

    转载于:https://www.cnblogs.com/bztMinamoto/p/10483351.html

    展开全文
  • poj2151 概率dp

    2018-01-22 11:34:15
    传送门 题意:给定t个队伍、m场比赛,每个队伍做对每个题的概率,问每个队都至少做对一个题并且第一名做对的题目至少有n道的概率 思路:每个队至少做对1道题的概率很容易求,这个...那么关键就是怎么算p2 我们设dp[i

    传送门

    题意:给定t个队伍、m场比赛,每个队伍做对每个题的概率,问每个队都至少做对一个题并且第一名做对的题目至少有n道的概率

    思路:每个队至少做对1道题的概率很容易求,这个概率记作p,即每个队能做出题的概率的乘积,假设计算第i个队能做出题的概率,也就是1减去这个队做不出题的概率

    设p2为每个队都做出1到n-1道题的概率,那么p-p2就是最后的答案了

    那么关键就是怎么算p2

    我们设dp[i][j][k]为第i个队做前j个题做对k个题的概率,那么

    dp[i][j][k]=dp[i][j-1][k]*(1-data[i][j])+dp[i][j-1][k-1]*data[i][j]

    代码:

    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    double data[1005][35];
    double d[35];
    double dp[1005][35][35];
    double s[1005][35];
    int main()
    {
        int m,t,n;
        while(scanf("%d%d%d",&m,&t,&n)!=-1)
        {
            memset(dp,0,sizeof(dp));
            if(m==0&&t==0&&n==0) break;
            for(int i=1;i<=t;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    scanf("%lf",&data[i][j]);
                }
            }
            double p=1;
            for(int i=1;i<=t;i++)
            {
                double p1=1;
                for(int j=1;j<=m;j++)
                {
                    p1*=(1-data[i][j]);
                }
                p*=(1-p1);
            }
            for(int i=1;i<=t;i++)
                dp[i][0][0]=1;
            for(int i=1;i<=t;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    for(int k=0;k<=j;k++)
                    {
                        dp[i][j][k]=dp[i][j-1][k]*(1-data[i][j]);
                        if(k>0)
                            dp[i][j][k]+=dp[i][j-1][k-1]*data[i][j];
                    }
                }
            }
            double p2=1;
            for(int i=1;i<=t;i++)
            {
                double p3=0;
                for(int j=1;j<=n-1;j++)
                {
                    p3+=dp[i][m][j];
                }
                p2*=p3;
            }
            printf("%.3f\n",p-p2);
        }
    }
    


    展开全文
  • 概率dp light 1321

    2019-10-02 13:21:08
    题意:给定一张无向图,每条边都有一个通过的概率 ,如果无法通过,那么就要回到起点重新出发从起点...怎么算呢,通过最短路求出后,设期望值为E,成功概率p,如果成功,期望值为p*2k,如果不成功,期望值为(1-p)*...
  • poj 3071 概率DP

    千次阅读 多人点赞 2014-09-02 02:15:29
    推方程不难,但是难在怎么算 dp[i][j]表示第i场时第j只队伍存活下来的概率  方程:dp[i][j]=sigma(dp[i-1][j]*p[j][k]*dp[i-1][k]) j,k在同一场的条件:if(((k>>(i-1))^1)==(j>>(i-1)))即判断k的第i位前的数...
  • 首先互不相关的两件事x,yx,y 同时发生的概率P(x)+P(y)−P(x)∗P(y)P(x)+P(y)-P(x)*P(y)直接考虑怎么算进入充电状态元件的通电个数 因为若一棵子树需要对其他节点产生贡献或其他节点对这棵子树内的点产生贡献,都...
  • POJ - 2151 (概率dp)

    2018-09-30 19:57:00
    这个题解主要讲一下,后面的,至少有一道题解决和至少一道题至N-1道题解决,到底怎么算的,其实,很简单,就是母函数。 ac代码: #include<cstdio> #define N 1001 #define T 31 double dp[N][T][T];...
  • 不考虑地雷,设f[i]为在i位置上的概率。有f[i] = p * f[i-1] + (1 - p) * f[i-2]。 考虑地雷的话分段就好了,然而这个问题的关键在于怎么求这个f[i]。 开始看见这个用的矩阵快速幂,,,结果T了【话说别人也...
  • 题意:m到题T个队伍,给出每一个队伍做出每一道题的概率,询问所有队伍都至少解决一道题目且做的最多的队伍做的题目大于等于n的概率。 感觉还是一道很有趣的dp。首先考虑求至少每一个队伍都至少解决一道题目可以...
  • 推荐讲解:https://www.cnblogs.com/Tunix/p/4561493.html 首先考虑树的情况,就是经典的树上概率DP。...再考虑环的情况,由于环上点不超过20个,所以怎么暴力DP都好,出up后down用同样的方法DP...
  • 题面 思路 我们可以把到每个点的期望步数出来取max?但是直接显然是不行的 那就可以用Min-Max来容斥一下 设\(g_{s}\)是从x到s中任意一个点的最小步数 ...设\(p_i\)是i点到任意一个子集中的点的最小...
  • 容易想到,只要把每张牌打出的概率算出来就可以求出\(ans\) 设\(fp[i]\)表示把第\(i\)张牌打出来的概率 可知:\(fp[0] = 1-(1-p[0])^r\) (\((1-p[0])^r\)即一直不打出的概率) 后面的\(fp\)怎么求? 设\(f[i][j]\)...
  • 题意:给你p和q,表示从一个黑箱中一次取两只袜子,两只都是红袜子的概率p/q。。问你箱子里要多少红袜子和黑袜子? 解析: 首先明确p/q是怎么来的。我们假设总的袜子数量是i,红袜子的数量是j, p/q就是C(j,2)/...
  • 传送门 首先,大家应该都能看出来这是矩阵树定理,然后大部分人应该就会把概率直接...ans=∑Tree∏(u,v)∈EP(u,v)∏(u,v)∉E(1−P(u,v))然后我们来想一下怎么来构造这个答案:首先,我们直接矩阵树用高斯出来的结...
  • 在47-49的三行里,我写了两种摇臂被选中的概率的方法,前一种是每选择一次摇臂,就根据公式将所有摇臂的概率更新一次,我觉得这种似乎比较合理,后一种被我注释掉的,是只更新当次被选中的摇臂的概率。两种实验...
  • 随机森林

    2017-05-22 16:10:52
    1、随机森林中的概率怎么算的? 如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;如果是回归问题,则输出为所有树的输出的平均值。 2、决策树的分类概率怎么算的? ...
  • 数据元组已经按分类器返回概率值的递减序排序。对于每个元组,计算真正例 (TP)、假正例(FP)、真负例(TN)和假负例(FN)的个数。计算真正例 率(TPR)和假正例率(FPR)。...TP、FP等是怎么算出来的?
  • n-gram

    2017-07-26 10:03:51
     该模型第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个... 对于一个句子T,我们怎么算它出现的概率呢?假设T是由词序列W1,W2,W3,…Wn组成的,那么P(T)=P(W1W2W3Wn)=P(W1)P(W2|W
  • 概率dp就是这样,怎么想都是错的,题解怎么想都想不通,但它就是对的。 期望有些难,我们还是先算概率。 f[i][j]表示前i个雷,挂了j句话。 那么剩下还有r-j句话,编号1,..,r-j,第k句话挂的概率为(1-p[i])^(k-1)*p...
  • 传送门 题意:给你一个mmm个面的骰子,数字分别为111~mmm,问你投了n次之后出现过数字的期望最大值。...p[i]p[i]p[i]怎么算呢,就是1-每次都投出小于i的概率,就是1−(i−1m)n1−(i−1m)n1-(\fr...
  • 大眼一看最下面的题意解释的话,发现这和洛谷P1310表达式的值挺像的,大概都是给定一些运算符号,让最后的表达式为true的概率,为false的概率啥的QwQ~; ...那么怎么算这个运算符左边的式子和右...
  • 这一讲试图回答的问题是基于Homogeneous Markov Family及其对应的转移函数P(t,x,Γ)P(t,x,\Gamma)P(t,x,Γ),怎么构造它的平稳测度(可以类比马尔科夫链,有了转移概率矩阵要平稳分布)。之前定义了Markov Family...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

概率p怎么算