Sửa lại chương trình bổ sung thông báo nếu hệ thống chuyên đề không hợp lí thì thông báo dãy các chuyên đề có mâu thuẫn về kiến thức.
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
Phiên bản mẫu gợi ý sửa đổi của chương trình để bổ sung thông báo nếu hệ thống chuyên đề không hợp lý và hiển thị dãy các chuyên đề có mâu thuẫn về kiến thức:
def DFS(graph, start, visited, stack):
visited[start] = True
for neighbor in graph[start]:
if not visited[neighbor]:
DFS(graph, neighbor, visited, stack)
stack.append(start)
def topological_sort(graph):
num_nodes = len(graph)
visited = [False] * num_nodes
stack = []
for node in range(num_nodes):
if not visited[node]:
DFS(graph, node, visited, stack)
return stack[::-1]
def is_valid_system(topological_order, prerequisites):
knowledge = set()
for course in topological_order:
knowledge.add(course)
if course in prerequisites:
for prerequisite in prerequisites[course]:
if prerequisite not in knowledge:
return False, [course, prerequisite]
return True, None
def check_course_system(prerequisites):
graph = {}
for course, prereq in prerequisites.items():
if course not in graph:
graph[course] = []
graph[course].extend(prereq)
topological_order = topological_sort(graph)
valid, conflicting_topics = is_valid_system(topological_order, prerequisites)
if valid:
print("Hệ thống chuyên đề hợp lý.")
else:
print("Hệ thống chuyên đề không hợp lý.")
print("Dãy các chuyên đề có mâu thuẫn về kiến thức:", conflicting_topics)
# Dữ liệu chuyên đề và tiên điều kiện
prerequisites = {
"A": ["B"],
"B": ["C"],
"C": ["D"],
"D": ["A"] # Mâu thuẫn về kiến thức với tiên điều kiện của D
}
# Kiểm tra hệ thống chuyên đề
check_course_system(prerequisites)
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |