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

คำนวณเวล 배ตเตอรี่ Eco Mode ใน Python

ภาพรวม

โจทย์คำนวณเวลาที่แบตเตอรี่เหลือจนหมด โดยมี eco mode ที่เปิดเมื่อเหลือ 20% ทำให้ใช้พลังงานช้าลง 2 เท่า

ตัวอย่าง

t = 75 นาที, p = 25% เหลือ

จาก 100% → 25% ใช้ 75 นาที (โหมดปกติ)

อัตราโหมดปกติ: 75% / 75 นาที = 1%/นาที

Eco mode (≤20%): 0.5%/นาที

เหลือ 25%: 5% ในโหมดปกติ (5 นาที) + 20% ใน eco (40 นาที) = 45 นาที

สูตร

  • ถ้า p < 20: อยู่ใน eco แล้ว → 2 * p * t / (120 - 2 * p)
  • ถ้า p ≥ 20: (p + 20) * t / (100 - p)

โค้ด Python

class Solution:
    def solve(self, t, p):
        if p < 20:
            return 2 * p * t / (120 - 2 * p)
        return (p + 20) * t / (100 - p)

ob = Solution()
print(ob.solve(75, 25))

การสร้างสูตร (Derivation)

อัตราปกติ r = (100-p)/t %/นาที

Eco rate = r/2

เวลาที่เหลือ = (p-20)/r + 20/(r/2) = (p-20)t/(100-p) + 40t/(100-p) = (p+20)t/(100-p)

ผลลัพธ์

45.0