亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回包含算術平均值和無偏樣本方差的元組

返回包含算術平均值和無偏樣本方差的元組

紅糖糍粑 2023-08-15 17:28:44
我必須編寫一個函數,它接受長度≥2 的數字列表,并返回一個包含這些數字的算術平均值和無偏樣本方差的元組。即給定一個項目列表 [??1,??2,…,????],返回一個元組 (??,??2),其中:我不允許使用內置函數,如求和、任何數學函數等。我不知道在不使用這些函數的情況下如何繼續。我的代碼:def mean_variance(numbers):     m = sum(numbers) / len(numbers)     var = sum((xi - m) ** 2 for xi in numbers) / len(numbers)         return m, var我正在測試的內容:assert(mean_variance([1, 2, 3]) == (2, 1))
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

我不知道為什么不允許您使用內置函數,但我想您可以在沒有內置函數的情況下做到這一點,如下所示:


def mean_variance(numbers):

    meanSum = 0

    for num in numbers:

        meanSum += num

    mean = meanSum / len(numbers)


    varSum = 0

    for num in numbers:

        varSum += (num - mean) ** 2

    var = varSum / (len(numbers) - 1)


    return mean, var


查看完整回答
反對 回復 2023-08-15
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

我用 替換了該sum函數reduce并更正了公式中的錯誤。這是代碼:


from functools import reduce



def mean_variance(numbers):

    m = reduce(lambda x, y: x+y, numbers) / len(numbers)

    var = reduce(lambda x, y: x+y, ((xi - m) ** 2 for xi in numbers)) / (len(numbers)-1)

    return m, var


查看完整回答
反對 回復 2023-08-15
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

不使用任何內置方法


平均值和方差可以是浮點數。所以返回int或float將由自動處理assert


def mean_variance(inputList):

  sum = 0

  lenList = 0

  for val in inputList:

    sum = int(val) + sum

    lenList = lenList + 1

  mean = sum/lenList


  sum_sq = 0

  for val in inputList:

    sq = (int(val) - int(mean)) ** 2

    sum_sq = sum_sq + sq

  variance = sum_sq/(lenList-1)


  return (float(mean), float(variance))



print(mean_variance([1, 2, 3]))

assert mean_variance([1, 2, 3]) == (2, 1)


查看完整回答
反對 回復 2023-08-15
  • 3 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號