"买到同类票"的概率(洛谷P2719题题解,Java语言描述)

题目要求

P2719题目链接
在这里插入图片描述

分析

没有选择动归实现,排列组合就可以啦!

事先说明: C 2 n 2 n 1 < = > ( 2 n 2 n 1 ) C_{2n-2}^{n-1} <=> \binom{2n-2}{n-1}

最后两张票属于不同类的概率: ( 2 n 2 n 1 ) × ( 1 2 ) 2 n 2 \binom{2n-2}{n-1} \times (\frac{1}{2})^{2n-2}
\therefore 此时,前 ( 2 n 2 ) (2n-2) 张里有 ( n 1 ) (n-1) 张A, ( n 1 ) (n-1) 张B

( 2 n 2 n 1 ) × ( 1 2 ) 2 n 2 = ( 2 n 2 ) ! 4 n 1 ( n 1 ) ! ( n 1 ) ! = ( 2 n 2 ) ( 2 n 3 ) ( n ) [ 4 ( n 1 ) ] [ 4 ( n 2 ) ] [ 4 × 1 ] \binom{2n-2}{n-1} \times (\frac{1}{2})^{2n-2} = \frac{(2n-2)!}{4^{n-1}(n-1)!(n-1)!} = \frac{(2n-2)(2n-3)\cdots(n)}{[4(n-1)][4(n-2)]\cdots[4\times1]}

迭代运算即可得到答案!

补一发DP的动态转移方程: f [ i ] [ j ] = ( f [ i 1 ] [ j ] + f [ i ] [ j 1 ] ) 2 f[i][j]=\frac{(f[i-1][j]+f[i][j-1])}{2}

AC代码(Java语言描述)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt()>>1;
        scanner.close();
        double result = 1.0;
        for (int i = 1; i < num; i++) {
            result *= (double) (i + num - 1) / (i << 2);
        }
        System.out.printf("%.4f", 1-result);
    }
}
发布了703 篇原创文章 · 获赞 1493 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104848391