UVA - 10169 Urn-ball Probabilities!
来源:互联网 发布:14年流行的网络歌曲 编辑:程序博客网 时间:2024/06/06 03:02
题目大意:两个罐子,开始一个有一个红球,一个有一个红球一个白球,每次取一个球(放回),然后多放一个白球进去。给定n,求出取n次出现取得两个红球的概率。和取n次都是两个红球的概率的小数点后面的0有几位。
解题思路:第一个问题:取n次出现取得两个红球的概率=1 - 取n次一次都没出现取得两个红球的概率
第二个问题:每次都取到两红球概率不断叠乘上去 p[i] = p[i - 1] * (1 / (i * i + i)); 位数为 - lg(p[i])
要先打表预处理不然会超时。在处理第二个问题的时候,由于有精度误差,- lg(p[i]) 可以转化为 - lg(p[i - 1] * (1 / (i * i + i))) = - (lg(p[i - 1]) + lg(1 / (i * i + i))) = - lg(p[i - 1]) + lg(i * i + i); 这样,注意类型要用long long 不然100W^2 int是存不下的
#include <cstdio>#include <cmath>const int N = 1000005;double p[N] = {1}, q[N] = {0};int main() {for (long long i = 1; i < N; i++) {p[i] = (1 - (1.0 / (i * i + i))) * p[i - 1];q[i] += q[i - 1] + log10(i * i + i);}int n;while (scanf("%d", &n) != EOF)printf("%.6lf %d\n", 1 - p[n], (int)q[n]);return 0;}
0 0
- UVA 10169 Urn-ball Probabilities !
- uva 10169 Urn-ball Probabilities !
- Urn-ball Probabilities! - UVa 10169
- UVA - 10169 Urn-ball Probabilities!
- uva 10169 Urn-ball Probabilities!
- uva 10169 - Urn-ball Probabilities !(概率)
- UVa 10169 Urn-ball Probabilities ! (概率)
- 10169 - Urn-ball Probabilities !
- UVA 10169 - Urn-ball Probabilities !(概率 打表)
- Urn-ball Probabilities!
- UVa 10169 - Urn-ball Probabilities ! (预处理+log10计算小数点后连续0的个数)
- uva10169 - Urn-ball Probabilities !(缸和球的概率问题)
- UVA-679-DROPING BALL
- Ball Blasting Game UVA
- UVA 12378 Ball Blasting Game
- Combining Probabilities
- UVA 11880 (Ball in a Rectangle) 平面几何
- UVA 11880 Ball in a Rectangle 几何
- 戒掉娱乐
- 关于关联规则的一些资料
- 什么是java序列化?如何实现java序列化?
- Cloneable
- 首次写博客
- UVA - 10169 Urn-ball Probabilities!
- find your present (2)
- 【Java学习笔记】安装
- java Comparable Comparator
- Android 安卓使用C/C++静态库/动态库指南
- 约瑟夫问题
- php之MySQL完美分页
- 国内外著名科技站点
- 黑马程序员--Java基础长博客版(二)