bnuoj-53073 萌萌哒身高差 【数学】【非原创】

“清明时节雨纷纷,路上行人欲断魂。”

然而wfy同学的心情是愉快的,因为BNU ACM队出去春游啦!并且,嗯。。。

以下是wfy同学的日记:

昨天,何老师告诉我们:明天我们去春游,大家准备好喝的和吃的哦!

大家听了都兴奋起来,有的欢呼,有的鼓掌,开心得不得了。第二天,我们早早地来到学校,迫不及待地上了车,来到了公园。一进门,啊,太美了!公园中有那么多树,有高有矮,有粗有瘦,密密的,在春风吹拂下轻轻摇摆着,像是欢迎我们的到来。公园中有那么多的鲜花,有红有黄,有紫有白,散发着淡淡的清香,闻得我们都醉了。公园的边角上有一条清澈的小河,河水缓缓地流淌着,可以看到水里的鱼儿在快活地游来游去,多自在啊!水草碧绿碧绿的,多新鲜啊!小河的旁边是一片小树林,远远望去一片鲜绿。我们在里面吃东西、做游戏、捉迷藏,玩得疯极了。树林的后面是连绵起伏的小山坡,蜿蜿的真像一条游动的蛇。当然,我觉得公园的天空也很美。它万里无云,一碧如洗,很清澈。小鸟在展翅飞翔,它们形态各异,一会儿上升,一会儿下滑,一会儿吃虫,一会儿在小树林里休息,非常悠闲。快乐时光总是那么短暂,很快,天色就昏暗了。我们依依不舍地上了车,回到了学校,我真希望明年的春天还能再来看看这美丽的公园。
回到学校后,何老师说:请大家排成一排,我们来拍照片啦!

何老师特别喜欢萌的东西,比如**,比如****,等等。

何老师认为,同学们站成一排时,相邻两个同学身高相差越多,这两个同学站在一起越萌。

那么所有相邻两个同学的身高差加起来越大,拍出来的照片就越萌,也就是这张照片的萌力指数。

何老师希望拍出来的照片的萌力指数尽可能大。

然而何老师并不是数学老师,而是语文老师。何老师觉得很GG。

何老师只想知道,如果让同学们随便站成一排(站成所有排列的可能性都相等),萌力指数的数学期望是多少。

聪明的我一下子就算出了答案,然后何老师就奖励了我一个很萌的礼物。

今天真的好开心。

BNU ACM队共有名同学,身高分别是,聪明的你能计算出何老师想要的数学期望吗?

Input

第一个是一个正整数,表示测试数据的组数,

每组测试数据只有一行,包含一个整数

Output

对于每组测试数据,输出一行,包含一个实数,表示萌力指数的数学期望值,要求相对误差不超过

也就是说,令输出结果为,标准答案为,若满足,则输出结果会被认为是正确答案。

Sample Input

2
2
3

Sample Output

1.000000000000
2.666666666667

Hint

对于第二组样例,所有可能的排列是[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1],所以答案是

思路;

(1)多写几个样例,找规律。2的时候3/3;3的时候8/3;4的时候15/3;5的时候24/3;6的时候35/3,可以发现n的时候就是((n*n)-1)/3即n方减一

 1 #include <iostream>
 2 #include <iomanip>2
 3 using namespace std;
 4 int main()
 5 {
 6     int t;
 7     cin>>t;
 8     while(t--)
 9     {
10         int n;
11         cin>>n;
12         cout<<fixed<<setprecision(12)<<((n*n)-1.0)/3.0<<endl;
13     }
14     return 0;
15 }

(2)另一种思考方式(重点),由于是全排列,对于n个数,总共有n*(n-1)/2种形式的差,且每种差出现次数相同,两重for循环即可求出所有形式的差出现一次的和sum,那么求出每种差出现的次数就可以求出差的总和。由于每一种顺序有n-1种差,有n!种序列,所以每次出现的次数为:n!*(n-1)/(n*(n-1)/2)=2*(n-1)!所以和即为:(sum*2*(n-1)!)/n! = sum*2/n即为答案。

数学期望是求np的和,这里的n就是每种排列差的和,p就是每种排列的概率。而一般全排列的题找思路都需要改变p的对象。这里就是把每种排列的概率转换为了每种形式的差的概率为p = 2 / n 而此时n的和为 = sum,所以np = sum * 2 / n即为答案。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 typedef long long ll;
 5
 6 const int N=1000010;
 7 const int mod=1e9+7;
 8 const int Max=0x3f3f3f3f;
 9
10 ll ans[N];
11 char ch[N];
12
13 int main()
14 {
15     int T;
16     cin>>T;
17     while(T--)
18     {
19         int i,j;
20         ll sum=0;
21         int n;
22         cin>>n;
23         for(i=n;i>=1;i--)
24         {
25             for(j=1;j<=n;j++)
26             {
27                 if(i>j)
28                 sum+=(i-j);
29             }
30         }
31         double ans=(2.0*sum)/n;
32         cout<<fixed<<setprecision(12)<<ans<<endl;
33     }
34     return 0;
35 }

参考博客:戳这里

原文地址:https://www.cnblogs.com/zmin/p/8976922.html

时间: 2024-10-11 22:28:47

bnuoj-53073 萌萌哒身高差 【数学】【非原创】的相关文章

华为上机题之输出身高差值最小的俩个人

要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高. Smple     input:161 189 167 172 188 Sample outPut: 188 189 分析: 看到这个题,最小想到的全排问题,从5个人中抽2个人出来,一共有10中情况.计算出来后,马上想到的是用排序来这10种情况的差值,选取差值最小那一组的俩个人. 接下来想到的是用什么数据结构.每一种情况需要存储a.b两

应付面试的算法(取身高差最小,身高最高的两个人)

输入5个身高,用空格分隔开,取身高差最小,身高最高的两个人:public class Shengaocha { //最小身高差 public static void main(String[] args) { String s="160 178 177 161 163"; //输入后为String类型 // int[] a={160,178,177,161,163}; 用数组方便一点点 String[] ss=s.split(" "); //根据空格将字符串分割,分

有关中小非原创小说网站SEO的思考

晃眼两年过去了,12年后自己开了家小公司,线下实体,网站这块都荒废了,前段时间闲着没事又捡起了闲置的域名,两年多没做了,只剩下不到20个域名,随便选了几个准备做小说网挂着,心不大,服务器和域名的费用收回就够了. 刚开始建了三个,本地调试好,放服务器应该不到3个小时,首页就被百度收录,这一点来说现在百度还是相对做的很不错的,是最快的(未发新外链),其次就是360搜索,大概第二天到第三天陆续收录了首页,最慢的当属搜狗了差不多接近一周才收录(如果不是小说站我是不会考虑搜狗的).其中一个相对比较幸运,开

新辰:SEOer如何降低非原创文章带来的影响?

1.相关资料 官方文档:http://htmlparser.sourceforge.net/samples.html API:http://htmlparser.sourceforge.net/javadoc/index.html 其它HTML 解释器:jsoup等.由于HtmlParser自2006年以后就再没更新,目前很多人推荐使用jsoup代替它. 2.使用HtmlPaser的关键步骤 (1)通过Parser类创建一个解释器 (2)创建Filter或者Visitor (3)使用parser

Linux下high CPU分析心得【非原创】

非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND     14094 root      15   0  315m 

CSS样式命名整理(非原创)

非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column 中间内容:center 导航 导航:nav 导航:mainbav/globalnav 子导航:subnav 顶导航:topnav 边导航:sidebar 左导航:leftsidebar 右导航:rightside

发现一段精简的模板算法(非原创)

引用自: http://ejohn.org/blog/javascript-micro-templating/ // Simple JavaScript Templating // John Resig - http://ejohn.org/ - MIT Licensed (function(){ var cache = {}; this.tmpl = function tmpl(str, data){ // Figure out if we're getting a template, or

字符串相似度计算的方法,使用SQL以及C#实现,本文非原创摘自网络(.NET SQL技术交流群入群206656202需注明博客园)

1 CREATE function get_semblance_By_2words 2 ( 3 @word1 varchar(50), 4 @word2 varchar(50) 5 ) 6 returns nvarchar(4000) 7 as 8 begin 9 declare @re int 10 declare @maxLenth int 11 declare @i int,@l int 12 declare @tb1 table(child varchar(50)) 13 declare

求2个人的身高差值最小

要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高. 例: 输入:161 189 167 172 188  输出:188 189