重心算法公式验证

重心算法公式验证

1、计算公式

根据百度百科得到的公式如下所示:
在这里插入图片描述

2、公式验证

通过python编写公式,测试一维数字阵列,测试结果如下所示,基本可以验证重心算法的计算结果基本吻合。

请输入数字阵列:0 1 2 3 4 5 6 5 4 3 2 1 0
(0x1+1x2+2x3+3x4+4x5+5x6+6x7+5x8+4x9+3x10+2x11+1x12+0x13)/(0+1+2+3+4+5+6+5+4+3+2+1+0) = 252.0/36.0=7.0
请输入数字阵列:3 4 5 6 7 6 5 4 3
(3x1+4x2+5x3+6x4+7x5+6x6+5x7+4x8+3x9)/(3+4+5+6+7+6+5+4+3) = 215.0/43.0=5.0
请输入数字阵列:22 33 44 33 22
(22x1+33x2+44x3+33x4+22x5)/(22+33+44+33+22) = 462.0/154.0=3.0
请输入数字阵列:2 3 44 66 77 55 33 22
(2x1+3x2+44x3+66x4+77x5+55x6+33x7+22x8)/(2+3+44+66+77+55+33+22) = 1526.0/302.0=5.052980132450331

在这里插入图片描述

3、测试源码

arr_data = input("请输入数字阵列:")
while arr_data != "":
    dec = arr_data.replace(" ", '')
    if dec.isdigit():
        dec = arr_data.split(" ")
        data_dividend = 0.0
        data_divisor = 0.0  
        num = 0  
        str_dividend = ''
        str_divsior = ''
        for i in range(len(dec)):
            if dec[i] == "":
                break
            if i>0:
                str_dividend = str_dividend + "+"
                str_divsior = str_divsior + "+"
            num += 1
            data_dividend = int(dec[i])*(i+1) + data_dividend
            data_divisor = int(dec[i]) + data_divisor
            str_dividend = str_dividend + str(dec[i]) + "x" + str(i + 1)
            str_divsior = str_divsior + str(dec[i])
        if num == len(dec):
            str_formula  = "(" + str_dividend + ")"  + "/" + "(" +str_divsior  + ")" 
            result_over = data_dividend/data_divisor
            print(str_formula + " = " + str(data_dividend) + "/" + str(data_divisor) + "=" + str(result_over))
            arr_data = input("请输入数字阵列:")
        else :
            arr_data = input("包含多余的空格,请重新输入数字阵列:")
    else:
        arr_data = input("输入错误!请输入数字阵列:")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值