这道题你会做吗?codeforces程序算法网的一道入门级题

概述:本文翻译了NB程序员们常去的国际知名的算法竞赛网站codeforces的第259期的一道入门级算法题,程序员朋友,这道题你会做么?

代码测试需求:

程序响应时间限制:1秒以内
程序内存限制:256M以内
输入方法:标准输入
输出方法:标准输出

《彩虹小马》里的女孩Twilight Sparkle与她的朋友Rainbow Dash,Apple Jack 以及 Flutter Shy在一起玩骰子游戏,但是她一直都在输。回到城堡以后,Twilight Sparkle对游戏里使用的骰子很感兴趣。

pony

骰子一共有m个面,第一面有一个点,第二面有两个点,以此类推,第m个面有m个点。Twilight Sparkle很清楚的知道,每当她丢一次骰子,都有可能随机出现其中的一个面。并且她还知道,每次扔出的概率都是独立的。现在请你帮助她计算下,当她扔出n次骰子后,所得的最大的点的预期值是多少?

输入值:包含2个整数,m和n (1 ≤ m, n ≤ 105)。

输出值:输出的结果对应于最大的点的预期值,结果误差在10-4范围内都视为正确答案。

示例,比如在假定m=2,n=2的情况下(即骰子只有两面,扔2次的情况):

  1. 你第一次扔了1个1,第二次扔了1个2,最大结果为2。
  2. 你第一次扔了1个1,第二次扔了1个1,最大结果为1。
  3. 你第一次扔了1个2,第二次扔了1个1,最大结果为2。
  4. 你第一次扔了1个2,第二次扔了1个2,最大结果为2。

由于出现上述四种情况的概率都为0.25,那么预期值为

(2 + 1 + 2 + 2)* 0.25 = 7/4

一些输出结果:

Input
6 1
Output
3.500000000000
 
Input
6 3
Output
4.958333333333
 
Input
2 2
Output
1.750000000000

本文翻译自Little Pony and Expected Maximum

 

你可能感兴趣的:(算法,codeforces)