1312 - CÔNG TƠ ĐỒNG HỒ

Đưa về bài toán giải phương trình: S_1 / ( K + V_1) + S_2 / ( K + V_2) + . . . + S_n / ( K + V_n) = T

Trong đó ta cần xác định K (các giá trị khác đã biết)

Theo đề bài: giá trị mn = -10^3 \leq K \leq 10^3 = mx. (mn, mx là các cận trên)

Ta luôn có được mn =- Vmax (để giảm cận dưới của dữ liệu) vì thật sự đề cho vận tốc thật sự > 0. Nên mn thấp nhất sẽ là - [V cao nhất trong dữ liệu]

  • Trong vòng lặp while
    • Tính giá trị trung bình c và tính tổng thời gian thực tế t dựa trên giá trị c đó.
      • Sau đó, so sánh tổng thời gian T vói giá trị t
      • Nếu if (t > T) // thời gian thực tế đã nhiều hơn T đã cho Cập nhật lại giá trị trung bình là chặn dưới ( VÌ KHI TĂNG vận tốc lên thì thời gian sẽ giảm đúng ko )
      • Ngược lại
         Tương tự nhưng cập nhật lại giá trị trung bình cho chặn trên 
        
  • Cứ làm chán chê như thế cho đến khi đúng 3 chữ số cuối thì thoát
  • Khi thoát lấy 2 số cuối làm tròn thôi

Mô tả chạy từng bước 2 6 13 6 10 1

mn = -1.000000, mx = 1000.000000 Sau đó tính lại mn = -1.00 ( vì vận tốc đã cho \geq0)

 cn = 499.500000
 cn = 249.250000
 cn = 124.125000
 cn = 61.562500
 cn = 30.281250
 cn = 14.640625
 cn = 6.820312
 cn = 2.910156
 cn = 0.955078
 cn = 1.932617
 cn = 1.443848
 cn = 1.199463
 cn = 1.321655
 cn = 1.382751
 cn = 1.352203
 cn = 1.367477
 cn = 1.359840
 cn = 1.363659
 cn = 1.361750
 cn = 1.3627041.36