(C++)数据序列求和(连续输入数字)

【问题描述】随意输入一个整数序列,以-1作为结束标志,求所有输入数据的和。
【输入形式】任意一个整数序列
【输出形式】求和
【样例输入】1 2 5 6 -1
【样例输出】14

#include <iostream>
using namespace std;
int main()
{
    int a, sum;
    sum = 0;
    cin >> a;
    for (; a != -1;) {
        sum = sum + a;
        cin >> a;
    }
    cout << sum << endl;
    return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 香农熵(Shannon entropy)是用来衡量一维序列(例如数据、信息)的不确定性或者信息量的度量。计算一维序列的香农熵可以使用以下公式: c = -∑(P(x) * log2(P(x))) 其中,c表示香农熵,P(x)表示序列中某个元素x出现的概率。 首先,我们需要统计序列每个元素出现的次数,并计算每个元素出现的概率P(x)。假设该序列有n个元素,对于每个元素x,它出现的次数记为count(x),则P(x) = count(x) / n。 接下来,根据每个元素的概率P(x),我们可以计算每个元素对应的信息量,即-log2(P(x))。然后,将每个元素的信息量乘以对应的概率,再将所有元素的信息量求和,即可得到序列的香农熵c。 举个例子来说明,假设有一个序列:[A, B, A, A, C]。其中,出现的元素有A、B、C,它们出现的次数分别为3、1、1。根据计算公式,我们可以得到每个元素的概率:P(A) = 3/5,P(B) = 1/5,P(C) = 1/5。 然后,计算每个元素的信息量:-log2(P(A)) ≈ 0.079,-log2(P(B)) ≈ 2,-log2(P(C)) ≈ 2。接着,将每个元素的信息量乘以对应的概率:0.079 * 3/5 ≈ 0.047,2 * 1/5 = 0.4,2 * 1/5 = 0.4。 最后,将所有元素的信息量求和:0.047 + 0.4 + 0.4 ≈ 0.847。所以,这个序列的香农熵约为0.847。 通过这种方式,我们可以计算一维序列的香农熵,衡量序列的不确定性或者信息量。香农熵越大,表示序列的不确定性或信息量越高。 ### 回答2: 香农熵是用来衡量信息量的一种指标,可以用来度量一维序列的不确定性或者无序程度。假设我们有一个离散的一维序列X,其中元素的取值有m个,假设每个元素出现的概率分别为p1, p2, ..., pm。则香农熵c的计算公式为: c = - (p1 * log2(p1) + p2 * log2(p2) + ... + pm * log2(pm)) 其中log2表示以2为底的对数。香农熵的结果越大,表示序列的不确定性越高,越无序。 我们可以通过以下步骤计算出一维序列的香农熵c: 1. 统计每个元素在序列中出现的频次,即计算各个元素的概率。 2. 对于每个元素的概率,计算它的信息量,即-log2(概率)。 3. 将每个元素的信息量乘以其概率,并对所有元素求和,得到香农熵c。 举个例子来说明,假设我们有一个一维序列X=[1, 2, 3, 2, 1, 1, 3, 3],其中元素的取值范围为{1, 2, 3}。在序列X中,元素1出现3次,元素2出现2次,元素3出现3次。 计算每个元素的概率: p1 = 3/8 = 0.375 p2 = 2/8 = 0.25 p3 = 3/8 = 0.375 计算每个元素的信息量: - log2(p1) = - log2(0.375) ≈ 1.415 - log2(p2) = - log2(0.25) = 2 - log2(p3) = - log2(0.375) ≈ 1.415 计算香农熵c: c = -(0.375 * 1.415 + 0.25 * 2 + 0.375 * 1.415) ≈ - (0.530625 + 0.5 + 0.530625) ≈ -1.56125 所以,一维序列X的香农熵c约为1.56125。 ### 回答3: 香农熵(Shannon Entropy)是用来度量一维序列的信息量,可以用来衡量序列的无序程度。计算一维序列的香农熵可以按照以下步骤进行: 1. 确定序列中所有可能的元素,并统计每个元素在序列中出现的次数。 2. 计算每个元素在序列中的出现概率,即该元素出现的次数除以序列的总长度。 3. 对于每个元素的出现概率,计算其对应的信息量。信息量被定义为-log2(p),其中p为元素的出现概率。信息量越大,表示该元素出现的概率越低,包含的信息越多。 4. 将每个元素的信息量乘以其对应的出现概率,得到该元素的信息熵。 5. 对所有元素的信息熵进行求和,得到序列的香农熵。 举例说明:假设要计算序列 [A, B, A, A, C, B, C, C, C] 的香农熵。 1. 元素有A、B、C,A出现3次,B出现2次,C出现4次。 2. A的概率为3/9,B的概率为2/9,C的概率为4/9。 3. A的信息量为-log2(3/9)=log2(9/3)=log2(3)=1.58,B的信息量为-log2(2/9)=log2(9/2)=log2(4.5)=2.17,C的信息量为-log2(4/9)=log2(9/4)=log2(2.25)=1.17。 4. A的信息熵为1.58*(3/9)=0.53,B的信息熵为2.17*(2/9)=0.48,C的信息熵为1.17*(4/9)=0.519。 5. 序列的香农熵为0.53+0.48+0.519=1.529。 因此,该序列的香农熵为1.529。一维序列的香农熵越高,表示序列的无序程度越高,包含的信息量越大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值