当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

zoj 3827 Information Entropy(水题)

发表于: 2014-10-13   作者:阿尔萨斯   来源:转载   浏览:
摘要: 题目链接:zoj 3827 Information Entropy 题目大意:三种底,计算和。 解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。 #include <cstdio> #include <cstring> #include <cmath&

题目链接:zoj 3827 Information Entropy

题目大意:三种底,计算和。

解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp0+plogb(p)=0,因为p是logp的高阶。

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>

using namespace std;

int N;

double f(double x, int k) {
    if (x == 0)
        return 0;

    if (k == 1)
        return x * log2(x);
    else if (k == 2)
        return x * log(x);
    else
        return x * log10(x);
}

int main () {
    int cas, k;
    scanf("%d", &cas);
    while (cas--) {
        char op[10];
        scanf("%d%s", &N, op);
        if (op[0] == 'b')
            k = 1;
        else if (op[0] == 'n')
            k = 2;
        else if (op[0] == 'd')
            k = 3;

        int x;
        double ans = 0;
        for (int i = 1; i <= N; i++) {
            scanf("%d", &x);
            ans += f(x / 100.0, k);
        }
        printf("%.8lf\n", -ans);
    }
    return 0;
}

zoj 3827 Information Entropy(水题)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号