zoukankan      html  css  js  c++  java
  • hdu4503 概率

    题意:

                           湫湫系列故事——植树节

                                            Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
                                           Total Submission(s): 985 Accepted Submission(s): 583


    Problem Description
      今天是一年一度的植树节,腾讯幼儿园要求每个老师在班里选出几个小朋友一起去野外种植小树苗,根据学校的整体安排,湫湫老师的班里要选出3个小朋友。 已知湫湫的班里共有n个孩子,每个孩子有Bi个朋友(i从1到n),且朋友关系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。为了选择的公平性,湫湫老师会随机抽取3个小朋友出来(每个人被抽到的概率相同),但是她很希望这3个小朋友之间的关系完全相同,湫湫老师想请你帮她算算抽到的3个小朋友正好关系相同的概率是多少?
      PS. 关系相同就是指要么3个人互相是好朋友,要么3个人互相都不是好朋友。

    Input
    输入数据第一行是一个整数T(1<=T<=1000),表示输入数据的组数;每组数据的第一行是一正整数n表示孩子的总数(2<n<=1000),第二行有n个数Bi (i从1到n),分别代表每个小朋友的朋友的个数。

    Output
    对于每组数据,请输出抽到的3个小朋友关系相同的概率,结果保留3位小数。

    Sample Input
    1 5 3 3 3 3 4

    Sample Output
    0.400


    思路:
          求反面,对于每个人,他的反面就是他和他朋友中的一个,和不是他朋友中的一个,就是

    1 * pi * (n - 1 - pi) 因为最后所有的情况都多算了一半(他的他的朋友),所以除以2,输出1 - p 就行了...


    #include<stdio.h>
    
    int main ()
    {
       int i ,n ,t ,num;
       double ans;
       scanf("%d" ,&t);
       while(t--)
       {
          scanf("%d" ,&n);
          ans = 0;
          for(i = 1 ;i <= n ;i ++)
          {
             scanf("%d" ,&num);
             ans += 1 * num * (n - 1 - num);
          }
          ans = ans / 2 /(n * (n - 1) * (n - 2)) * 6;
          printf("%.3lf
    " ,1 - ans);
       }
       return 0;
    }
          
          
       
    
    

  • 相关阅读:
    ADB server didn't ACK * failed to start daemon *
    老调重弹:年龄大了,码农何去何从(转)
    HR给应届生的黄金面试技巧
    Android自动开关机实现
    [Android实例] Android ShakeDetector(摇晃检测)教程详解
    Hadoop : MapReduce中的Shuffle和Sort分析
    获得和裁剪图片
    android bitmap compress(图片压缩)
    知识签名(signature of knowledge)
    SVN安装(eclipse)
  • 原文地址:https://www.cnblogs.com/csnd/p/12063214.html
Copyright © 2011-2022 走看看