zoukankan      html  css  js  c++  java
  • 「51Nod1639」绑鞋带(概率

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
     收藏
     关注
    有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?
    Input
    仅一行,包含一个整数n  (2<=n<=1000)。
    Output
    输出一行,为刚好成环的概率。
    Input示例
    2
    Output示例
    0.666667

    题解

    考虑当前已经打了$i$个结,

    那么当前还有$2*n-2*i$个鞋带头,

    其中你捏住了一个,还剩$2*n-2*i-1$个鞋带头,

    这其中只有一个(跟你捏住的在同一根绳上的)鞋带头是不可以打结的,

    所以这一步能打一个符合要求的结的概率为$frac{2*n-2*i-2}{2*n-2*i-1}$.

    $i$从$0$循环到$n-2$,当打了$n-1$个结时停下.(因为$n-1$个结时已经成一条链了).

    答案就是累乘的结果.

     1 /*
     2 C++
     3 15 ms
     4 2108 KB
     5 Accepted
     6 2018/10/26
     7 17:01:37
     8 */
     9 #include<iostream>
    10 #include<cstdio>
    11 using namespace std;
    12 int main()
    13 {
    14     //freopen("a.in","r",stdin);
    15     int n;
    16     scanf("%d",&n);
    17     double ans=1;
    18     for(int i=0;i<n-1;++i)
    19     {
    20         ans*=(double)(2*n-(2*i)-2)/(2*n-(2*i)-1);
    21     }
    22     cout<<ans;
    23     return 0;
    24 }
  • 相关阅读:
    BERT基础知识
    TorchText使用教程
    Pytorch-中文文本分类
    预处理算法_5_数据集划分
    预处理算法_4_表堆叠
    预处理算法_3_新增序列
    预处理算法_2_类型转换
    预处理算法_1_表连接
    爬取网站所有目录文件
    如何将Docker升级到最新版本
  • 原文地址:https://www.cnblogs.com/qwerta/p/9858445.html
Copyright © 2011-2022 走看看