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

    solution

    Đề bài: [An toàn thông tin] Phá Caesar bằng Chi-squared

    Tìm khóa Caesar bằng Chi-squared

    Cho bản mã Caesar tiếng Anh. Tìm khóa mã hóa k (0..25) bằng cách thử mọi khóa giải, chọn khóa cho văn bản giải ra khớp tiếng Anh nhất (chi-squared nhỏ nhất).

    Phương pháp: với mỗi khóa thử, dịch tần suất và tính chi-squared so với ENG. Khóa cho chi-squared nhỏ nhất chính là khóa mã hóa ban đầu.

    Tie-break: nếu nhiều khóa hòa, chọn khóa nhỏ nhất.

    Ví dụ

    Input:  Wkh txlfn eurzq ira
    Output: 3
    
    • Định dạng đầu vào:

      Bản mã Caesar (tiếng Anh) trên stdin.

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

      Văn bản ≤ 100000 ký tự, chứa ít nhất vài chục chữ cái để phá ổn định.

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

      Một số nguyên 0..25: khóa mã hóa.

    Ví dụ:

    Đầu vào:

    Wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj
    

    Đầu ra:

    3

    Giải thích:

    Giải khóa 3 ra 'The quick brown fox...'; khóa mã hóa = 3.

    Đang tải editor...