zoukankan      html  css  js  c++  java
  • UVa 557

    题目大意:有n个牛肉汉堡和n个鸡肉汉堡给2n个孩子吃。每个孩子在吃之前都要抛硬币,正面吃牛肉汉堡,反面吃鸡肉汉堡。如果剩下的所有汉堡都一样,则不用抛硬币。求最后两个孩子吃到相同汉堡的概率。

    正面不好思考,考虑最后两个孩子吃不同汉堡的概率。则根据概率相关知识,P(n) = (1 / 2) ^ (2n - 2) * C(n - 1, 2n - 2),由P(n)和P(n+1)的关系得到:P(n+1) / P(n) = (2n - 1) / 2n;由P(1) = 1可递推得到结果打表。

    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    double res[51200];
    void init()
    {
    	res[1] = 1;
    	for (int i = 1; i <= 50000; ++i)
    		res[i + 1] = res[i] * (2 * i - 1) / (2 * i);
    }
    int main()
    {
    	init(); int kase, n; cin >> kase;
    	while (kase--){
    		cin >> n;
    		printf("%.4f
    ", 1 - res[n / 2]);
    	}
    	return 0;
    }


  • 相关阅读:
    Hyperion Planning 表单数据验证功能实现
    类型别名
    内联函数和constexpr函数
    强制类型转换
    当函数返回值是引用
    左值和右值
    const形参和实参
    const限定符
    auto与decltype
    局部对象
  • 原文地址:https://www.cnblogs.com/kunsoft/p/5312692.html
Copyright © 2011-2022 走看看