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] So sánh với epsilon máy

    Epsilon máy (machine epsilon) là khoảng cách giữa 1.0 và số biểu diễn được kế tiếp lớn hơn 1.0. Với single ε = 2^(−23), với double ε = 2^(−52). Khi so sánh hai số thực, ta thường kiểm tra |x − y| ≤ ε_rel · max(|x|, |y|) thay vì so sánh bằng tuyệt đối.

    Cho hai số thực x, y và một loại độ chính xác p (s = single hoặc d = double), hãy in:

    1. Epsilon máy tương ứng theo định dạng khoa học {:.2e};
    2. Chuỗi EQUAL nếu |x − y| ≤ eps · max(|x|, |y|, 1.0), ngược lại DIFFERENT.

    In hai phần trên cùng một dòng, cách nhau dấu cách.

    Ví dụ

    x = 1.0, y = 1.0, p = d: eps = 2.22e-16, hai số bằng nhau → 2.22e-16 EQUAL.

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

      Một dòng: x y p. x, y là số thực, p là s hoặc d.

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

      |x|, |y| ≤ 10^6, p thuộc {s, d}.

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

      Một dòng: epsilon định dạng {:.2e}, dấu cách, EQUAL hoặc DIFFERENT.

    Ví dụ:

    Đầu vào:

    1.0 1.0 d
    

    Đầu ra:

    2.22e-16 EQUAL

    Giải thích:

    eps double = 2^-52 ≈ 2.22e-16; |1-1|=0 ≤ eps*1 nên EQUAL → 2.22e-16 EQUAL.

    Đang tải editor...