Lưu ý : Thử thách này hiện đang đóng cửa. Bất kỳ đệ trình của cảnh sát trong tương lai sẽ không được xem xét cho câu trả lời được chấp nhận. Điều này là để đảm bảo rằng không ai có thể đăng một regex rất đơn giản trong tương lai mà vẫn không bị bẻ khóa vì không ai quan tâm đến thử thách nữa.
Thử thách của cảnh sát
Bạn phải viết một regex ngắn gọn, khó hiểu, đáp ứng các thông số sau:
Bạn có thể chọn bất kỳ hương vị có thể tự do kiểm tra trực tuyến. Có một danh sách tốt những người thử nghiệm trực tuyến trên StackOverflow . Đặc biệt, Regex101 sẽ rất tốt để giúp bạn bắt đầu, vì nó hỗ trợ các hương vị PCRE, ECMAScript và Python. Bạn có thể tăng giới hạn thời gian chờ bằng cách nhấp vào cờ lê ở góc trên bên phải nếu cần thiết. Vui lòng bao gồm người kiểm tra bạn chọn trong câu trả lời của bạn.
Nếu không có người kiểm tra phù hợp có sẵn cho bạn lựa chọn, bạn cũng có thể sử dụng trình thông dịch trực tuyến như ideone và viết một đoạn script nhỏ bằng ngôn ngữ máy chủ mà mọi người có thể sử dụng để kiểm tra trình của bạn.
- Bạn có thể sử dụng bất kỳ tính năng nào của hương vị đó, không trực tiếp gọi ngôn ngữ máy chủ (như các tính năng đánh giá mã của Perl).
- Tương tự như vậy, bạn có thể sử dụng bất kỳ công cụ sửa đổi nào (nếu hương vị của bạn có chúng), trừ khi chúng dẫn đến việc đánh giá mã.
- Regex của bạn phải chấp nhận ít nhất một chuỗi S và từ chối ít nhất một chuỗi T , mỗi chuỗi dài ít nhất 16 và không quá 256 ký tự, trong một khoảng thời gian hợp lý (không dài hơn đáng kể một phút). S và T có thể chứa các ký tự Unicode không phải là ASCII, miễn là có cách nhập chúng vào trình kiểm tra trực tuyến. Bất kỳ cặp chuỗi như vậy sẽ là một chìa khóa để gửi của bạn.
- Regex của bạn có thể mất nhiều thời gian tùy ý trên bất kỳ đầu vào nào khác.
Cốt lõi của thách thức là tạo ra một regex có chìa khóa khó tìm. Đó là, thật khó để biết chuỗi nào nó không khớp hoặc chuỗi nào khớp với nó (hoặc có khả năng cả hai nếu regex mất nhiều ngày để hoàn thành tất cả trừ chuỗi của khóa).
Thử thách của bọn cướp
Tất cả người dùng, bao gồm cả những người đã gửi regex (es) của riêng họ, được khuyến khích "bẻ khóa" các bài nộp khác. Một bài nộp bị bẻ khóa khi một trong các khóa của nó được đăng trong phần bình luận liên quan.
Quan trọng: Đảm bảo rằng cả hai chuỗi bạn đăng đều nằm trong khoảng từ 16 đến 256 ký tự, ngay cả khi gần như bất kỳ chuỗi nào có thể được sử dụng cho một phần của khóa.
Nếu một bài nộp tồn tại trong 72 giờ mà không bị sửa đổi hoặc bẻ khóa, tác giả có thể tiết lộ một khóa hợp lệ bằng cách chỉnh sửa nó thành một thẻ spoiler trong câu trả lời của mình. Điều này sẽ làm cho câu trả lời của anh ấy "an toàn", tức là nó không còn có thể bị bẻ khóa nữa.
Chỉ cho phép một lần bẻ khóa cho mỗi lần gửi cho mỗi người dùng. Ví dụ: nếu tôi gửi cho người dùng X: "Khóa của bạn là 0123456789abcdef
/ fedcba9876543210
." và tôi sai, người dùng X sẽ từ chối dự đoán của tôi là không chính xác và tôi sẽ không còn có thể gửi dự đoán bổ sung cho lần gửi đó, nhưng tôi vẫn có thể bẻ khóa các bài nộp khác (và những người khác vẫn có thể bẻ khóa bài nộp đó).
Đệ trình bẻ khóa được loại bỏ khỏi sự tranh chấp (miễn là chúng không "an toàn"). Họ không nên được chỉnh sửa hoặc xóa. Nếu một tác giả muốn gửi một regex mới, (s) anh ta nên làm như vậy trong một câu trả lời riêng.
Đừng bẻ khóa trình của bạn!
Lưu ý: Đối với các chuỗi dài trong các nhận xét không có khoảng trắng, SE chèn các ngắt dòng thủ công ở dạng hai ký tự Unicode. Vì vậy, nếu bạn đăng một khóa trong backticks dài đến mức nó kết hợp giữa các ký tự không phải khoảng trắng, bạn sẽ không thể sao chép khóa thẳng ra một trình kiểm tra regex. Trong trường hợp này, vui lòng cung cấp permalink cho người kiểm tra biểu thức chính quy có liên quan với biểu thức chính thức của cảnh sát và khóa của bạn - hầu hết người kiểm tra bao gồm tính năng này.
Chấm điểm
Điểm của cảnh sát sẽ là kích thước của biểu thức chính quy của họ theo byte (mẫu cộng với bộ sửa đổi, dấu phân cách tiềm năng không được tính), miễn là nó không bị bẻ khóa. Điểm thấp nhất của bài nộp "an toàn" sẽ giành chiến thắng.
Điểm của một tên cướp sẽ là số lần gửi mà chúng bị bẻ khóa. Trong trường hợp hòa, tổng kích thước byte của các lần gửi mà chúng bị bẻ khóa sẽ được sử dụng một bộ ngắt kết nối. Ở đây, số byte cao nhất sẽ thắng.
Như đã nêu ở trên, bất kỳ cảnh sát nào cũng có thể tham gia như một tên cướp và ngược lại.
Tôi sẽ duy trì bảng xếp hạng riêng cho hai phần của thử thách.
Bảng xếp hạng
Cập nhật lần cuối: 19/10/2014, 20:33 UTC
Cảnh sát:
Đệ trình in nghiêng vẫn chưa an toàn.
- nneonneo , 841 byte
- Wumpus Q. Wumbley , 10.602 byte
- Sp3000 , 52.506 byte
- người dùng23013 , 53.884 byte
- nneonneo , 656.813 byte
Cướp
- user23013 , Cracked: 11, Tổng kích thước: 733 + 30 + 2.447 + 71 + 109 + 121 + 97 + 60 + 141 + 200.127 + 7.563 = 211.499 byte
- nneonneo , Cracked: 10, Tổng kích thước: 4.842 + 12.371 + 150 + 3571 + 96 + 168 + 395 + 1043 + 458 + 17.372 = 40.466 byte
- Wumpus Q. Wumbley , Cracked: 6, Tổng kích thước: 22 + 24 + 158 + 32 + 145.245 + 145.475 = 290.956 byte
- Dennis , Cracked: 2, Tổng kích thước: 70 + 73 = 143 byte
- harius , Cracked: 1, Tổng kích thước: 9,998 byte
- g.rocket , Cracked: 1, Tổng kích thước: 721 byte
- stokastic , Cracked: 1, Tổng kích thước: 211 byte
- Sp3000 , Cracked: 1, Tổng kích thước: 133 byte
- TwiNight , Cracked: 1, Tổng kích thước: 39 byte