lightoj 1265 概率

本文探讨了一个孤岛生存问题,分析了在有限数量的老虎和鹿存在的情况下,一个人如何才能最大概率地生存下来。通过数学计算得出,当老虎数量为奇数时无法生存,而为偶数时则可通过特定的概率计算得到生存的最大可能性。

题意:在孤岛生存, 孤岛上有t头老虎,d头鹿,每天会出现随机出现两只生物(包括你自己),如果出现了一只老虎,那么你将被吃掉, 如果两只老虎, 则两只老虎会同归于尽,其他情况你都将生存下来。当孤岛上没有老虎时, 就视为你生存成功。问生存成功的最大概率


如果t只老虎是一个奇数, 那么必然存活失败

如果是偶数,两只老虎遇见的情况数:t * (t - 1)

概率P = t * (t - 1) / (t * (t + 1)) = (t - 1) / (t + 1)

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#define rep(i, j, k) for(int i = j; i <= k; i++)
#define maxn 100009

using namespace std;

int tiger, deer;

int main()  
{  
	int t, ca = 0;
	cin >> t;
    while(t--)  
    {  
       scanf("%d%d",&tiger,&deer);  
       printf("Case %d: ",++ca);  
       double ans=1;  
       if(tiger&1)  
         printf("0.00000000\n");  
	   else
	   {
      while(tiger>0)  
		 ans *= (tiger - 1) * 1.0 / (tiger + 1) * 1.0, tiger-=2;  
       printf("%.7lf\n",ans);  
	   }
    }  
  
  return 0;  
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值