23.6. Giải mã. Giả sử một bản rõ được mã hoá theo phương pháp tịnh tiến kí tự với khoá k < 5...

Câu hỏi:

23.6. Giải mã. Giả sử một bản rõ được mã hoá theo phương pháp tịnh tiến kí tự với khoá k < 5 (xem Câu 23.5). Khi đó để giải mã (xác định bản rõ) ta chỉ việc đổi các kí tự tương ứng của bản mã thành kí tự đứng trước nó trong bảng mã ASCII k vị trí. Em hãy viết chương trình nhập khoá k và in ra bản rõ từ bản mã là một danh sách, trong đó mỗi phần tử là một kí tự trong bảng mã ASCII.

Câu trả lời:
Người trả lời: GV. Đỗ Đăng Hạnh
Để giải mã một bản mã được mã hóa theo phương pháp tịnh tiến kí tự với một khoá k < 5, ta có thể viết một chương trình như sau:

```python
ban_ma = ['Q', ']', '$', 'R', 'E', 'Q', 'I', '>', '$', 'P', 'S', 'R', 'K'] # Bản mã cần giải mã
khoa = int(input('Nhập số tự nhiên k < 5: ')) # Nhập khoá để giải mã
ban_ro = [] # Danh sách chứa bản rõ sau khi giải mã

for kitu in ban_ma:
ban_ro.append(chr(ord(kitu) - khoa)) # Thêm kí tự đã giải mã vào danh sách bản rõ

print(ban_ro) # In ra danh sách bản rõ sau khi giải mã
```

- Cách làm 1:
- Input: nhập khoá k từ người dùng.
- Duyệt từng kí tự trong danh sách bản mã và thực hiện việc giải mã bằng cách trừ khoá k từ mã ASCII của kí tự đó.
- Thêm kí tự đã giải mã vào danh sách bản rõ.
- In ra danh sách bản rõ sau khi giải mã.

- Cách làm 2:
- Sử dụng hàm `map` để áp dụng phép giải mã cho tất cả các kí tự trong danh sách bản mã một cách ngắn gọn.

Viết câu trả lời đầy đủ và chi tiết hơn dựa trên nội dung trên và cách thực hiện.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.09699 sec| 2203.242 kb