Theo nghĩa chính thức nhất, kích thước của đầu vào được đo theo tham chiếu đến việc triển khai thuật toán Turing Machine và đó là số ký hiệu bảng chữ cái cần thiết để mã hóa đầu vào.
Điều này tất nhiên là khá trừu tượng và rất khó để làm việc trong thực tế, hoặc ít nhất là rất khó chịu - chúng ta sẽ cần xem xét cách chúng ta sẽ chỉ định các phân số, v.v. Điều gì xảy ra bình thường trong thực tế là chúng ta tìm kiếm một phép đo proxy kích thước của đầu vào - một cái gì đó thuận tiện và dễ tiếp cận hơn, nhưng điều đó không gây ra bất kỳ vấn đề toán học nào trong phân tích của chúng tôi.
Sử dụng ví dụ "abcde" của bạn, thông thường, bảng chữ cái chúng ta sử dụng cho đầu vào là nhỏ, do đó, ngay cả khi sử dụng phép đo proxy gồm ký tự, chúng tôi biết rằng ngay cả trên Máy Turing, chúng tôi có thể, nếu chúng tôi làm phiền, chỉ định một mã hóa đầu vào sẽ chuyển đổi "abcde" thành một số dạng được mã hóa có độ dài tối đa cho một số hằng số . Sự mở rộng này bởi một hằng số thường sẽ không tạo ra sự khác biệt trong phân tích tiệm cận của chúng tôi, vì chúng tôi thường xuyên loại bỏ các yếu tố không đổi.55×c c
Trong một trường hợp khác, chúng ta thường đo kích thước của đồ thị đầu vào bằng số đỉnh . Rõ ràng nếu chúng ta muốn chỉ định các biểu đồ lớn tùy ý, kích thước của đầu vào được mã hóa không chỉ đơn giản là - ví dụ điều gì đã xảy ra với các cạnh? Những gì chúng ta biết là chúng ta có thể sử dụng sơ đồ mã hóa hợp lý đại diện cho biểu đồ trong các bit . Đây là một sự mở rộng nhiều hơn một chút so với hằng số, nhưng trong nhiều trường hợp thú vị, chúng ta chỉ giải quyết mọi thứ ở mức độ chi tiết của đa thức, và đa thức sáng tác độc đáo theo nhiều cách - cụ thể là, ví dụ, nếu chúng tôi xác định rằng thời gian chạy của chúng tôi là trong đó là một đa thức, sau đó chúng tôi biết rằng có một số đa thứcnnN=c⋅n2lognO(p(n))pp′ sao cho , vì vậy khi chúng ta quay trở lại thước đo chính thức của đầu vào, chúng ta vẫn ở trong thời gian đa thức.O(p(n))=O(p′(N))
Một nơi mà điều này có thể rơi xuống là khi bạn đang làm việc với những con số. Vì một số có độ lớn có thể được mã hóa theo bit , nếu thời gian chạy của chúng tôi là , thì đây sẽ là - theo cấp số nhân trong kích thước đầu vào thực tế - mà sẽ làm cho cường độ thành một lựa chọn tồi cho proxy cho kích thước đầu vào nếu chúng ta muốn nói về tư cách thành viên trong (khi bạn đến Strongly- -complete và Weakly- - hoàn thành, hãy nhớ điều này). Mặt khác, nếu tất cả những gì chúng ta quan tâm là tính quyết định, thì đó sẽ là một biện pháp proxy đủ tốt.mn=O(logm)O(m)O(2n)mPNPNP
Vì vậy, mặc dù không có quy tắc rõ ràng nào để chọn biện pháp proxy cho kích thước đầu vào, yêu cầu là việc mở rộng hoặc thu hẹp kích thước proxy so với kích thước đầu vào phải tương thích với những gì bạn đang cố gắng chứng minh. Theo nguyên tắc thông thường, yếu tố liên tục thay đổi hầu như không bao giờ quan trọng, các yếu tố đa thức nhỏ thường ổn và hoạt động đối với hầu hết các lý thuyết cơ bản mà bạn thấy, các yếu tố đa thức lớn vẫn có thể hoạt động trên lý thuyết, nhưng có thể là một bất ngờ khó chịu trong thực tế, và số lượng thay đổi theo cấp số nhân thường quá cực đoan.