• 【dp概率与期望】pattern


    这是一个比赛题

    营销策略

    (pattern.cpp/c/pas)

    【题目描述】

    W 记的儿童套餐会赠送一份小玩具,赠送的小玩具共有n 种。
    小朋友买了m 份儿童套餐,求收集齐n 种小玩具的概率。假设每份儿童套餐赠送的
    小玩具的种类是等概率随机的。

    【输入格式】


    从pattern.in 中输入数据
    一行,两个整数n,m。

    【输出格式】


    输出到pattern.out 中
    一个实数表示收集齐小玩具的概率,保留4 位小数。

    【样例输入】


    2 3

    【样例输出】


    0.7500

    【数据规模与约定】


    对于10% 的数据保证:n = 1
    对于30% 的数据保证:n  2
    对于60% 的数据保证:n,m  20
    对于100% 的数据保证:1  n,m  1000

    【思路】

    第一次做数学期望和概率类的dp。。感觉压力很大。。

    f[i][j]表示前i个玩具中抽中j个不同的概率

    for (int j=0;j<=n;j++)
            {
                f[i+1][j]+=f[i][j]*j/n;
                f[i+1][j+1]+=f[i][j]*(n-j)/n;
            }

    【代码】

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    using namespace std;
    float f[1005][1005];
    int main()
    {
        freopen("pattern.in","r",stdin);
        freopen("pattern.out","w",stdout);
        int n,m;
        cin>>n>>m;
        f[0][0]=1;
        for (int i=0;i<=m-1;i++)
        {
            for (int j=0;j<=n;j++)
            {
                f[i+1][j]+=f[i][j]*j/n;
                f[i+1][j+1]+=f[i][j]*(n-j)/n;
            }
        }
        printf("%.4lf
    ",f[m][n]);
        return 0;
    }

    【结果】

    有经验就好,可以多写一写这样的题目试试看

    noip忘记取模的痛
  • 相关阅读:
    巴科斯范式和sql语言
    mysql 视图
    1503
    mysql SQL_CALC_FOUND_ROWS
    create table xxx as select 与 create table xxx like
    mysql 1030 Got error 28 from storage engine
    python -- 装饰器入门
    12C新特性 -- 共享asm口令文件
    MySQL子查询的优化
    MySQL的explain
  • 原文地址:https://www.cnblogs.com/seekdreamer/p/3857307.html
Copyright © 2020-2023  润新知