Escriba un programa o función que le dé una cadena (o el equivalente de su idioma), determine si la cadena es una palabra o no, y genere un valor verdadero o falso.
(Esto no es un duplicado de ¿Es esto incluso una palabra? Las palabras incorrectas se generan de una manera muy diferente que creo que hace de este un desafío completamente diferente)
Todas las palabras estarán en minúsculas, entre 5 y 10 caracteres, y no tendrán apóstrofes.
Las palabras correctas son un subconjunto seleccionado al azar de la lista de palabras en inglés SCOWL (tamaño 50).
Las palabras incorrectas se generan a través de dos métodos: intercambio y sustitución.
Las palabras "intercambiables" se generan usando un shuffle modificado de Fisher-Yates en las letras de palabras (reales) seleccionadas al azar. En lugar de intercambiar las letras cada vez, una letra puede o no intercambiarse (la probabilidad varía, por lo que algunas palabras serán más realistas que otras). Si la nueva palabra coincide con una palabra existente, el resultado se descarta y genera otra palabra.
Las palabras de "sustitución" se generan utilizando un método similar, pero en lugar de intercambiar la letra con otra letra, cada letra tiene la posibilidad de ser reemplazada por otra letra aleatoria.
Cada método se utiliza para generar el 50% de las palabras falsas.
Puntuación
Su función debe ser inferior a 150 bytes . La puntuación se determina de la siguiente manera:
percentage of answers correct + ((150 - length of program) / 10)
Reglas
Como se trata de una gran cantidad de casos de prueba (cada lista de palabras tiene 1000 palabras), un programa de prueba automatizado está bien. El probador automatizado no cuenta para la duración del programa; sin embargo, debe publicarse para que otros puedan probarlo.
- No hay escapatorias.
- Sin ortografía / diccionario integrado incorporado.
Recursos
Lista de palabras: http://pastebin.com/Leb6rUvt
Lista de no palabras (actualizado) : http://pastebin.com/rEyWdV7S
Otros recursos (lista de palabras SCOWL y el código utilizado para generar las palabras al azar): https://www.dropbox.com/sh/46k13ekm0zvm19z/AAAFL25Z8ogLvXWTDmRwVdiGa?dl=0
quais
, paves
, colic
, supermax
. (Nota al supermax