Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Kiến trúc máy tính] Phép FMA (fused multiply-add)

    Phép FMA (fused multiply-add) tính a·b + c với một lần làm tròn duy nhất ở cuối, trong khi cách thông thường (a·b) + c làm tròn hai lần (sau nhân và sau cộng). Sự khác biệt này quan trọng trong các bộ xử lý hiện đại.

    Cho ba số thực a, b, c, hãy tính:

    • fma = math.fma(a, b, c) (một lần làm tròn);
    • naive = a*b + c (hai lần làm tròn, double).

    In hai giá trị, mỗi giá trị làm tròn {:.2f}, cách nhau dấu cách: fma naive.

    Ví dụ

    Với các số nhỏ thông thường, hai kết quả trùng nhau tới 2 chữ số thập phân.

    • Định dạng đầu vào:

      Một dòng chứa ba số thực a b c cách nhau bởi dấu cách.

    • Ràng buộc đầu vào:

      |a|, |b|, |c| ≤ 10^6. Dùng math.fma (Python 3.13+); nếu môi trường không có, dùng công thức tương đương.

    • Định dạng đầu ra:

      Một dòng: fma naive, mỗi số định dạng {:.2f}.

    Ví dụ:

    Đầu vào:

    2.0 3.0 1.0
    

    Đầu ra:

    7.00 7.00

    Giải thích:

    fma(2,3,1)=7.0 và 2*3+1=7.0, cả hai in 7.00 7.00.

    Đang tải editor...