zoukankan      html  css  js  c++  java
  • 51nod1639(组合数学)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639

    题意:中文题诶~

    思路:组合数学

    n根鞋带要组成一个环,那么显然与连成一根鞋带之前不成环是冲要条件;

    假设当前还剩下 i (i>1) 根鞋带,要从中选择两根鞋带头连接后不成环的概率为 pi = 不成环的选择方法数 / 所有选择方法数

    所有方法数 = C(2*i, 2) = 2 * i * (2*i - 1) / 2 = i * (2*i - 1)

    成环的方法数 = C(i, 1) = i

    不成环的方法数 = 所有方法数 - 成环方法数 = i * (2*i - 2)

    所以 pi = 不成环的选择方法数 / 所有选择方法数 = (2*i - 2) / (2*i - 1)

    由此得到了i > 1时的 pi;

    对于每一个 i 的情况都可以看作是相互独立的事件,那么显然有 p = ∑pi = ∑(2*i - 2) / (2*i - 1) (2 =< i <= n);

    代码:

     1 #include <iostream>
     2 #include  <stdio.h>
     3 using namespace std;
     4 
     5 int main(void){
     6     int n;
     7     double p=1;
     8     scanf("%d", &n);
     9     for(int i=n; i>1; i--){
    10         p*=(double)(2*i-2)/(2*i-1);
    11     }
    12     printf("%.6lf
    ", p);
    13     return 0;
    14 }
    View Code
  • 相关阅读:
    ZOJ 1450
    HDU 3932
    POJ 3348
    POJ 1873
    POJ 1228
    POJ 2007
    POJ 1113
    POJ 1696
    POJ 1329
    HDU 3432
  • 原文地址:https://www.cnblogs.com/geloutingyu/p/6745240.html
Copyright © 2011-2022 走看看