- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Theo như tôi biết, có hai bước để chứng minh rằng một vấn đề là NP-đầy đủ:
Đưa ra thuật toán có thể kiểm tra lời giải của bài toán trong thời gian đa thức. Nghĩa là, một thuật toán có đầu vào là giải pháp được đề xuất cho một vấn đề và đầu ra của nó là "là" hoặc "không" tùy thuộc vào việc đầu vào có phải là giải pháp hợp lệ cho vấn đề hay không.
Chứng minh rằng một vấn đề là NP-hard - Ví dụ: giả sử bạn có một oracle có thể tính toán một vấn đề NP-đầy đủ đã biết khác trong một bước. Sử dụng điều này, hãy viết một thuật toán giải quyết vấn đề này trong thời gian đa thức.
Ví dụ: giả sử chúng ta muốn chứng minh rằng bài toán sau là NP-đầy đủ:
Cho một tập hợp số nguyên S
, liệu có thể cô lập một tập hợp con của các phần tử hay không S'
, làm Tổng các phần tử trong S'
Nó có chính xác bằng S
không bao gồm trong S'
Tổng các phần tử còn lại trong ?
Bước 1: Xác minh thuật toán
Verify_HalfSubset(Set S, Solution sol):
tích lũy = 0
cho mỗi phần tử i trong sol:
tích lũy+=tôi
tìm kiếm tuyến tính một phần tử có cùng giá trị với i trong S.
nếu tìm thấy thì xóa nó khỏi s, nếu không tìm thấy thì trả về false
kết thúc cho
tích lũy2 = 0
với mỗi phần tử i trong S:
tích2+=i
kết thúc cho
nếu accum==accum2 trả về true, ngược lại trả về false
Rõ ràng điều này chạy trong thời gian đa thức: vòng lặp for đầu tiên chạy trong O(nm)
chạy trong cái thứ hai trong TRÊN)
chạy vào trong.
Bước 2: Giảm
Giả sử chúng ta có một nhà tiên tri O(Đặt S, int I)
Tính một bước của bài toán tổng tập con (nghĩa là có tập con các phần tử trong S có tổng bằng I) không?
Sau đó, chúng ta có thể viết thuật toán thời gian đa thức để tính bài toán bán tập hợp con của mình:
HalfSubset(Bộ S):
tích lũy = 0
với mỗi s trong S:
tích lũy+=S
kết thúc cho
if(tích lũy%2==1)
// câu hỏi này cấm "chia" các giá trị thành các phần không tách rời
trả lại NO_ANSWER
end if
nửa1 = O(S, tích lũy/2)
if(half1 == NO_ANSWER)
trả lại NO_ANSWER
end if
với mỗi i trong nửa1:
tìm kiếm tuyến tính một phần tử có cùng giá trị với Half1[i] trong S
xóa nó khỏi S.
kết thúc cho
nửa2 = S
trở lại (half1 và Half2)
Ai đó có thể cho tôi biết liệu tôi có mắc phải sai lầm nào trong quá trình thực hiện không? Đây là một câu hỏi trong bài ôn tập cuối kỳ của tôi mà tôi không chắc mình đã hiểu hết.
câu trả lời hay nhất
Phần thứ hai trong câu trả lời của bạn hơi sai. Điều bạn đã nói ở bước thứ hai là bạn có thể giảm vấn đề này thành bài toán NP-đầy đủ đã biết trong thời gian đa thức. Nghĩa là, bạn đang nói rằng vấn đề này khó nhất là vấn đề NP-đầy đủ.
Điều bạn đang muốn nói là bài toán NP-đầy đủ có thể được rút gọn thành bài toán ví dụ của bạn trong thời gian đa thức. Điều này cho thấy rằng nếu bạn có thể giải bài toán này trong thời gian đa thức thì bạn cũng có thể giải được bài toán NP-đầy đủ trong thời gian đa thức, chứng tỏ rằng bài toán ví dụ của bạn là NP-đầy đủ.
Về thuật toán - đây có phải là cách hiểu đúng về việc chứng minh điều gì đó là NP Complete không? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/20550623/
Câu hỏi này đã có câu trả lời: Làm cách nào để so sánh chuỗi không phân biệt chữ hoa chữ thường? (23 câu trả lời) Đã đóng 3 năm trước. Người dùng viết "bóng đá" vào trường nhập của tôi rồi thực hiện bước 6
À, không quen với chuỗi trong javascript. character_id= + id + Correct= + CorrectOrIn Chính xác Đây là những gì tôi cần để tạo thành một chuỗi. Nếu bạn không đoán được nhân vật
$(function() { var base_price = 0; CalculatePrice(); $(".math1").on('change', function(e) { Calc
Tôi không thể tìm thấy bất kỳ bài viết nào trả lời câu hỏi: Triển khai Spinnaker vào cùng cụm Kubernetes mà Spinnaker sẽ quản lý có an toàn/chính xác không? Ý tôi chủ yếu là sản xuất, triển khai HA. Câu trả lời hay nhất tôi nghĩ là Spinnaker và Kuberne
Tôi đang xây dựng Qt5 (Qt 5.15.0) trên Windows từ nguồn (bản phát hành nguồn chính thức, không phải từ kho lưu trữ) bằng MSVC. Tôi đang thiết lập môi trường. các biến, phần phụ thuộc, v.v. sau đó chạy cấu hình với 16 triệu tùy chọn và cuối cùng
Tôi cần in một mảng chứa các từ lặp lại. Mảng của tôi đã hoạt động nhưng tôi không biết cách đếm các từ một cách chính xác. Tôi đã biết rằng khi bộ đếm chỉ số của tôi (i) là 49 và khi (i) muốn đếm đến 50 thì tôi gặp lỗi, nhưng tôi không biết
Tôi đang làm theo hướng dẫn cho phép màn hình bản đồ của Google tắt tính năng cuộn dựa trên kích thước màn hình. Phần duy nhất tôi gặp khó khăn là viết mã tự động thay đổi giá trị Đúng/Sai khi tôi thay đổi kích thước màn hình theo cách thủ công. Đây là trang web mà tôi đã làm theo hướng dẫn nhưng
Tôi có một lớp "FileButton". Mục đích của nó là liên kết các tập tin với JButton, từ đó FileButton kế thừa. Các lớp con kế thừa từ điều này để thực hiện những việc hữu ích với các tệp được liên kết với các nút. JingleThẻMông
Mảng bạn bè của tôi chỉ trả về một số thay vì tất cả các số. ($myfriends = 3) sẽ là... ($myfriends = 3 5 7 8 9 12). Nếu tôi đặt nó vào một vòng lặp while... thì toàn bộ.
Câu hỏi này đã có câu trả lời ở đây: Có cách giải quyết nào để tạo các lớp CSS có tên bắt đầu bằng số hợp lệ không?
Tôi đang tạo một hàm JavaScript tự động thay đổi kích thước div thành cùng chiều rộng/chiều cao với cửa sổ khi cửa sổ được thay đổi kích thước. Chức năng này rất cơ bản nhưng tôi nhận thấy độ trễ "vẽ" đáng chú ý khi thay đổi kích thước cửa sổ. Trong JS fi
Hình ảnh cơ bản của vấn đề này có sẵn tại http://sevenx.de/demo/bootstrap-carousel/inc.carousel/tabbed-slider.html. - Nếu cậu muốn xem qua.
Tôi hiểu rằng nếu tôi muốn trả về một chuỗi ký tự hoặc một mảng từ một hàm, tôi nên khai báo nó là tĩnh để nội dung không bị "chết" khi hàm được gọi được trả về. Nhưng câu hỏi của tôi là, điều gì xảy ra khi tôi sử dụng malloc bên trong một hàm để phân bổ bộ nhớ? dưới
Trường dữ liệu nào phù hợp nhất (ít tốn kém nhất để đọc dữ liệu) để lưu trữ các giá trị đúng/sai/1/0 trong cơ sở dữ liệu mySQL? Tôi đã từng sử dụng một ký tự rất nhỏ trước đây nhưng tôi không chắc liệu đó có phải là giải pháp tốt nhất không? Cảm ơn bạn!
Tôi muốn đọc và xử lý từng mục trong hàng đầu tiên của tệp CSV (ví dụ: in). Tôi giả sử các dòng mới \n kiểu Unix được sử dụng, không có mục nào dài hơn 255 ký tự và (bây giờ) có một dòng mới trước EOF. Điều này có nghĩa là fgets() theo sau là strto
Vì vậy, tất cả chúng ta đều biết quy tắc so sánh có dấu/không dấu của C/C++ là -1 > 2u == true và tôi gặp tình huống muốn thực hiện so sánh "chính xác" một cách hiệu quả. Câu hỏi của tôi là cách tiếp cận nào hiệu quả hơn khi càng có nhiều kiến trúc quen thuộc với mọi người càng tốt. trình diễn
**Tóm tắt:**Tiêu đề bài viết có vẻ mâu thuẫn. Bài viết này được chia sẻ từ Cộng đồng Huawei Cloud "Xử lý ngoại lệ Java: Cách viết chương trình "đúng" nhưng trình biên dịch lại coi là có lỗi ngữ pháp" của Jerry Wang. Tiêu đề của bài viết có thể có vẻ mâu thuẫn, nhưng tôi
Tôi có một khung dữ liệu trông giống như: dataDemo % mutate_each(funs(ifelse(. == '.', REF, as.character(.))), -POS) # POS REF
Có ai có thể giúp tôi định dạng lại/định dạng đúng cách tệp văn bản được phân tách bằng VBScript không? Tôi có một tệp văn bản^ được phân tách như sau: AGREE^NAME^ADD1^ADD2^ADD3^ADD4^PCODE^BAL^A
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc kiến thức chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập trang
Tôi là một lập trình viên xuất sắc, rất giỏi!