Kịch bản sau đây đã xảy ra với tôi nhiều lần.
Tôi đã lập trình một thuật toán giải quyết một vấn đề nhất định. Nó hoạt động tốt và tìm ra giải pháp chính xác. Bây giờ, tôi muốn có một tùy chọn để nói với thuật toán "viết một lời giải thích đầy đủ về cách bạn có được giải pháp". Mục tiêu của tôi là có thể sử dụng thuật toán trong các cuộc biểu tình trực tuyến, các lớp hướng dẫn, v.v. Tôi vẫn muốn có một tùy chọn để chạy thuật toán trong thời gian thực mà không cần giải thích. Một mẫu thiết kế tốt để sử dụng là gì?
VÍ DỤ: Giả sử tôi thực hiện phương pháp này để tìm ước số chung lớn nhất . Phương thức thực hiện hiện tại trả về câu trả lời đúng, nhưng không có giải thích. Tôi muốn có một tùy chọn cho phương thức để giải thích các hành động của nó, như:
Initially, a=6 and b=4. The number of 2-factors, d, is initialized to 0.
a and b are both even, so we divide them by 2 and increment d by 1.
Now, a=3 and b=2.
a is odd but b is even, so we divide b by 2.
Now, a=3 and b=1.
a and b are both odd, so we replace a by (a-b)/2 = 1.
Now, a=1 and b=1.
a=b, so the GCD is a*2^d = 2.
Đầu ra phải được trả lại sao cho có thể dễ dàng hiển thị cả trong bảng điều khiển và trong các ứng dụng dựa trên web.
Một mô hình tốt để cung cấp giải thích khi cần thiết, trong khi không làm ảnh hưởng đến hiệu suất thời gian thực của thuật toán khi không cần giải thích là gì?