CodeForces 454C Little Pony and Expected Maximum (数学推导)
2016-09-22 21:25
423 查看
题意:掷一个m面的骰子连续n次,n个结果中取最大值为结果。求结果的期望。
思路:想象一个m维空间,每个单位空间的值,是其所有坐标轴的最大值。
即
则总和为
期望化简后为
不考虑精度的话
代码:
Description
Twilight Sparkle was playing Ludo with her friends Rainbow Dash, Apple Jack and Flutter Shy. But she kept losing. Having returned to the castle, Twilight Sparkle became interested in the dice that were used in the game.
The dice has m faces: the first face of the dice contains a dot, the second one contains two dots, and so on, the m-th face
contains mdots. Twilight Sparkle is sure that when the dice is tossed, each face appears with probability
.
Also she knows that each toss is independent from others. Help her to calculate the expected maximum number of dots she could get after tossing the dice n times.
Input
A single line contains two integers m and n (1 ≤ m, n ≤ 105).
Output
Output a single real number corresponding to the expected maximum. The answer will be considered correct if its relative or absolute error doesn't exceed 10 - 4.
Sample Input
Input
Output
Input
Output
Input
Output
Hint
Consider the third test example. If you've made two tosses:
You can get 1 in the first toss, and 2 in the second. Maximum equals to 2.
You can get 1 in the first toss, and 1 in the second. Maximum equals to 1.
You can get 2 in the first toss, and 1 in the second. Maximum equals to 2.
You can get 2 in the first toss, and 2 in the second. Maximum equals to 2.
The probability of each outcome is 0.25, that is expectation equals to:
You can read about expectation using the following link: http://en.wikipedia.org/wiki/Expected_value
思路:想象一个m维空间,每个单位空间的值,是其所有坐标轴的最大值。
即
则总和为
期望化简后为
不考虑精度的话
代码:
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { long long n,m; while(cin>>n>>m){ double ans=n; double temp=0; for(int i=1;i<=n-1;i++){ temp=(double)i/n; ans-=pow(temp,m); } printf("%4lf\n",ans); } }
Description
Twilight Sparkle was playing Ludo with her friends Rainbow Dash, Apple Jack and Flutter Shy. But she kept losing. Having returned to the castle, Twilight Sparkle became interested in the dice that were used in the game.
The dice has m faces: the first face of the dice contains a dot, the second one contains two dots, and so on, the m-th face
contains mdots. Twilight Sparkle is sure that when the dice is tossed, each face appears with probability
.
Also she knows that each toss is independent from others. Help her to calculate the expected maximum number of dots she could get after tossing the dice n times.
Input
A single line contains two integers m and n (1 ≤ m, n ≤ 105).
Output
Output a single real number corresponding to the expected maximum. The answer will be considered correct if its relative or absolute error doesn't exceed 10 - 4.
Sample Input
Input
6 1
Output
3.500000000000
Input
6 3
Output
4.958333333333
Input
2 2
Output
1.750000000000
Hint
Consider the third test example. If you've made two tosses:
You can get 1 in the first toss, and 2 in the second. Maximum equals to 2.
You can get 1 in the first toss, and 1 in the second. Maximum equals to 1.
You can get 2 in the first toss, and 1 in the second. Maximum equals to 2.
You can get 2 in the first toss, and 2 in the second. Maximum equals to 2.
The probability of each outcome is 0.25, that is expectation equals to:
You can read about expectation using the following link: http://en.wikipedia.org/wiki/Expected_value
相关文章推荐
- 链表 C++
- cookie、sessionStorage和localStorage的区别
- Android中使用Universal-Image-Loader图片缓存
- 天坑啊!Swift的is使用时出现 warning: 'is' test is always true
- keras安装opencv
- Rightmost Digital
- MySQL备份
- LeetCode 382. Linked List Random Node 解题报告
- 字符串变换最小问题
- C#索引器
- win10操作系统下重启电脑java环境变量失效
- Linux学习笔记二
- 为什么空指针?
- Javascript“预编译”理解
- 团队博客创建
- Unlocker(强力删除文件工具) 1.9.2 汉化绿色版
- HDU 4793 Collision (解二元一次方程) -2013 ICPC长沙赛区现场赛
- 二叉树的深度与广度遍历及前序遍历递归非递归实现
- java集合类
- 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题