uva 11021 Tribbles 概率计算
2015-09-06 15:20
218 查看
题意:看了半天没懂说的什么东西,原来是说给你k只兔子,每只最多可以活一天,可以生几只兔子的的概率给出,让你求m天以后,所有兔子灭亡的概率。。。。
思路:先求出这一只兔子在m天后灭亡的概率,在乘方计算k只兔子在m天后灭亡的概率。。一直兔子在m天后灭亡的概率计算,在第一天它灭亡的概率是生0只的概率,他在第j天灭亡的概率是他生各种孩子的概率乘以前一天的各种乘方的和,
AC代码:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int N;
int n,k,m;
double a[1005];
double b[1005];
scanf("%d",&N);
for(int i=1;i<=N;++i){
scanf("%d%d%d",&n,&k,&m);
for(int j=0;j<n;j++){
scanf("%lf",&a[j]);
}
b[1]=a[0];
for(int j=2;j<=m;j++){
b[j]=0;
for(int h=0;h<n;h++){
b[j]+=a[h]*pow(b[j-1],h);
}
}
printf("Case #%d: %.7lf\n",i,pow(b[m],k));
}
return 0;
}
这题真的是恶心,我读都读不懂,问了别人对题目的解释才懂这是个啥意思,看不懂的题没法做,,,,,菜鸟一枚的忧伤。。。。。。
思路:先求出这一只兔子在m天后灭亡的概率,在乘方计算k只兔子在m天后灭亡的概率。。一直兔子在m天后灭亡的概率计算,在第一天它灭亡的概率是生0只的概率,他在第j天灭亡的概率是他生各种孩子的概率乘以前一天的各种乘方的和,
AC代码:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int N;
int n,k,m;
double a[1005];
double b[1005];
scanf("%d",&N);
for(int i=1;i<=N;++i){
scanf("%d%d%d",&n,&k,&m);
for(int j=0;j<n;j++){
scanf("%lf",&a[j]);
}
b[1]=a[0];
for(int j=2;j<=m;j++){
b[j]=0;
for(int h=0;h<n;h++){
b[j]+=a[h]*pow(b[j-1],h);
}
}
printf("Case #%d: %.7lf\n",i,pow(b[m],k));
}
return 0;
}
这题真的是恶心,我读都读不懂,问了别人对题目的解释才懂这是个啥意思,看不懂的题没法做,,,,,菜鸟一枚的忧伤。。。。。。
相关文章推荐
- iOS开发UI -- UIAlertController(提示框)
- 在eclipse中将android项目生成apk并且给apk签名
- 信号处理一些知识
- android学习笔记(17)广播事件处理进阶(注册方法)
- 引用别人的项目cannot change version
- iOS开发 - 内存动态分析
- C-7 运动员和教练案例
- Android用AccessibilityService 辅助服务实现微信抢红包APP
- 设计模式之工厂方法模式
- 源码编译安装mysql5.6报错及解决方法
- Android开发中如何结束所有的activity
- 关于免费解决RedHat6.5的:This system is not registered to Red Hat Subscription Managemen
- 浙江大学PAT_甲级_1083. List Grades (25)
- 条款26: 尽可能延后变量定义的出现时间
- 文章标题
- Session待整理
- TCO 2015 Round 2A DIV1
- tar排除指定目录打包
- c++学习笔记-动态绑定
- 读取纯真IP数据库C++源代码