Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาค่าเฉลี่ยของอาร์เรย์หลังจากลบองค์ประกอบบางส่วนใน Python


สมมติว่าเรามีอาร์เรย์ที่เรียกว่า nums เราต้องหาค่าเฉลี่ยของค่าที่เหลือหลังจากลบ 5% ที่น้อยที่สุดและ 5% ที่ใหญ่ที่สุดออก

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8] แล้วผลลัพธ์จะเป็น 4.0 เพราะหลังจากลบค่าที่เล็กที่สุดและใหญ่ที่สุด ทั้งหมดจะเท่ากัน แล้วค่ามัธยฐานคือ

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เรียงเลขรายการ

  • n :=ขนาดของ nums

  • ต่อ :=ผลหารของ (n*5/100)

  • l2 :=subarray ของ nums จากดัชนีต่อ ถึง (ขนาดของ nums - per - 1)

  • x :=ค่าเฉลี่ยขององค์ประกอบทั้งหมดใน l2

  • ผลตอบแทน x

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(nums):
   nums.sort()

   n = len(nums)
   per = int(n*5/100)
   l2 = nums[per:len(nums)-per]

   x = sum(l2)/len(l2)

   return x

nums = [2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8]
print(solve(nums))

อินพุต

[2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8]

ผลลัพธ์

4.0