Viết chương trình hoặc hàm đã cho một chuỗi (hoặc tương đương với ngôn ngữ của bạn), xác định xem chuỗi đó có phải là từ hay không và đưa ra giá trị trung thực hoặc sai.
(Đây không phải là một bản sao của Đây có phải là một từ không? Các từ không chính xác được tạo theo một cách rất khác mà tôi tin rằng đây là một thách thức hoàn toàn khác)
Tất cả các từ sẽ là chữ thường, từ 5 đến 10 ký tự và không có dấu nháy đơn.
Các từ đúng là một tập hợp con được chọn ngẫu nhiên trong danh sách các từ tiếng Anh SCOWL (cỡ 50).
Các từ không chính xác được tạo ra thông qua hai phương pháp: hoán đổi và thay thế.
Các từ "hoán đổi" được tạo ra bằng cách trộn ngẫu nhiên Fisher-Yates trên các chữ cái của các từ được chọn ngẫu nhiên (thực). Thay vì hoán đổi các chữ cái mỗi lần, một chữ cái có thể hoặc không thể hoán đổi (xác suất thay đổi, vì vậy một số từ sẽ thực tế hơn các từ khác). Nếu từ mới khớp với một từ hiện có, kết quả sẽ bị loại bỏ và nó tạo ra một từ khác.
Các từ "thay thế" được tạo bằng một phương pháp tương tự, nhưng thay vì hoán đổi chữ cái này bằng một chữ cái khác, mỗi chữ cái có cơ hội được thay thế bằng một chữ cái ngẫu nhiên khác.
Mỗi phương pháp được sử dụng để tạo ra 50% từ giả mạo.
Chấm điểm
Hàm của bạn phải nhỏ hơn 150 byte . Việc tính điểm được xác định như sau:
percentage of answers correct + ((150 - length of program) / 10)
Quy tắc
Vì việc này liên quan đến một số lượng lớn các trường hợp kiểm tra (mỗi danh sách từ là 1000 từ), một chương trình kiểm tra tự động là tốt. Trình kiểm tra tự động không được tính vào thời lượng của chương trình; tuy nhiên, nó nên được đăng để những người khác có thể kiểm tra nó.
- Không sơ hở.
- Không có chính tả / từ điển liên quan tích hợp.
Tài nguyên
Danh sách các từ: http://pastebin.com/Leb6rUvt
Danh sách không từ (cập nhật) : http://pastebin.com/rEyWdV7S
Các tài nguyên khác (danh sách từ SCOWL và mã được sử dụng để tạo các từ ngẫu nhiên): https://www.dropbox.com/sh/46k13ekm0zvm19z/AAAFL25Z8ogLvXWTDmRwVdiGa?dl=0
quais
, paves
, colic
, supermax
. (Lưu ý bên lề: Tôi rất vui mừng khi biết đó supermax
là một từ thực tế)