第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

編寫生成 5 個隨機數(shù)并找出標準差的程序

編寫生成 5 個隨機數(shù)并找出標準差的程序

手掌心 2023-04-18 15:28:43
我在編寫代碼來生成 5 個隨機整數(shù)并找到 st. 開發(fā)者 5 個隨機整數(shù)部分已完成,但 st。開發(fā)部分不正確。import randomimport mathranList = []for x in range(0, 5):    n = random.randint(1, 10)    ranList.append(n)print("Here is the list of 5 random numbers:")print(ranList)print("The standard deviation is: ")def stDev(ranList):          ranList = ranList.copy()     xbar = sum(ranList)/len(ranList)    for i in range(len(ranList)):        ranList[i] -=  xbar        ranList[i] *= ranList[i]    s = sum(ranList)    s /= len(ranList)-1    return math.sqrt(s)print(stDev(ranList))
查看完整描述

3 回答

?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

只需像這樣使用statisticspython 提供的模塊:


import statistics 

import random


# creating sample data 

lst = []

for x in range(0, 5):

   n = random.randint(1, 10)

   lst.append(n) # also don't add semicolons after lines of code, that's not proper formatting


# Prints standard deviation 

print("Standard Deviation of sample is:", statistics.stdev(lst))

如果您不想使用內(nèi)置函數(shù),請嘗試:


# Find the mean

total = 0

for num in lst:

   total += num


mean = total/len(lst)


# Subtract mean from each value and square

new_lst = []

new_sum = 0

for item in lst:

   square_diff = (item - mean)**2

   new_lst.append(square_diff)


# Find the average of all the values 

new_lst_sum = 0

for item in new_lst:

    new_lst_sum += item


# print results

standard_dev = float(new_lst_sum/len(new_lst))

print("Your standard deviation is:", standard_dev)

這代碼更繁重且效率更低,但您可以清楚地看到邏輯。


查看完整回答
反對 回復 2023-04-18
?
叮當貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

您最新版本的代碼中的錯誤應該s /= len(ranList)-1是s /= len(ranList). 有幾件事需要考慮。首先,不要為測試隨機生成列表,而是使用硬編碼列表以便于驗證。其次,考慮在函數(shù)中創(chuàng)建第二個內(nèi)部列表,這樣您就不會破壞傳入的列表。


一個解決方案是


import math


def stDev(lst):

    xbar = sum(lst)/len(lst)

    mlst = [(v-xbar)**2 for v in lst]

    s = sum(mlst)/len(mlst)

    return math.sqrt(s)


test = [1, 7, 4, 1, 10]

result = stDev(test)

print(test, result)


查看完整回答
反對 回復 2023-04-18
?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

您應該檢查代碼中的兩個特定行。第一個是這樣的:

s /= sum(ranList)-1

為了計算標準偏差,您需要將總和除以 N-1。相反,您將它除以 sum-1。len(list)建議使用返回列表長度的函數(shù)。

第二個是這樣的:

數(shù)學.sqrt(s)

標準差公式需要返回變量的平方根s。實際上,該函數(shù)math.sqrt(float)返回參數(shù)的根,但不會將最終結(jié)果放入?yún)?shù)中。因此,您還應該將返回值分配給s.


查看完整回答
反對 回復 2023-04-18
  • 3 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號