¡Bienvenido al primero de lo que planeo ser una serie de desafíos JMP regulares! En su mayor parte, estos desafíos se centrarán en el lenguaje de secuencias de comandos JMP (JSL), pero ocasionalmente, introduciré algo que se puede hacer sin secuencias de comandos.
El primer día de cada mes, o alrededor, espero ofrecerte un problema que pondrá a prueba tus habilidades de JMP. Cada desafío buscará enfatizar ciertas habilidades de programación y orientadas a datos a medida que se aplican a JMP. Me gustaría animar a todos, independientemente de su nivel de habilidad, a intentarlo. Durante mi carrera, aprendí más al intentar hacer lo que parecía impenetrable, más allá de mis habilidades, encontrar una solución y luego aprender (o descubrir) una mejor manera de hacer las cosas.
Con cada nueva publicación, llamaré a los mejores artistas del desafío anterior y compartiré sus soluciones junto con otras soluciones interesantes. Hablaré sobre lo que creo que hizo que el desafío anterior fuera desafiante, y trataré de ofrecer un poco de sabiduría.
A medida que pase el tiempo, haré un seguimiento de los mejores. El desafío estará abierto a todos, pero mantendré las entradas del personal separadas del resto. Como es de esperar, tenemos algunos timbres en JMP.
Las reglas son simples:
- Todo debe hacerse completamente en JMP , sin invocar ninguna aplicación fuera de JMP, como SAS, R o Python, ni utilizar fuentes externas de información complementaria.
- Un script debe completar su tarea en un tiempo razonable, como se especifica en el desafío.
- Debe ejecutarse en Catalina o Windows 10.
- Si bien prefiero usar JMP 15 , Estoy dispuesto a considerar probarlo en JMP 14. Si esta es su preferencia, debe avisarme en su entrada.
- Publique sus entradas en el blog. Debo recibir su entrada final antes de las 11:59 p.m., hora del este, del día de la fecha límite. Consideraré solo una entrada por persona.
Los puntos se otorgarán cada mes a los guiones de mejor rendimiento según los criterios apropiados para el desafío. Mientras el desafío continúa, moderaré la sección de comentarios para evitar que se den a conocer pistas, pistas, presentaciones, etc., inadvertidamente. Te avisaré cuando reciba tu entrada.
JSL Challenge 1
Me encanta un buen rompecabezas de palabras. Este desafío está inspirado en Spelling Bee en The New York Times. En él, debe crear palabras de una lista de siete letras con la condición de que siempre se use una de las letras. Las otras letras se pueden usar una vez, más de una vez o no usarlas. Estoy modificando las condiciones para hacer las cosas un poco más complicadas.
Dadas siete letras, encuentra:
- La palabra más larga que usa las siete letras y solo esas siete letras. Las letras se pueden usar más de una vez.
- La palabra más larga que usa las siete letras y cualquier otra letra.
- La palabra más larga que usa las siete letras y cualquier otra letra donde ninguna letra del conjunto de siete se usa más de una vez.
- La palabra más larga en la que aparece 5 de las 7 letras. Cualquier letra, incluidas las que están fuera de las 7, puede aparecer una vez o más, excepto las dos letras no utilizadas de la lista de 7, que pueden no aparecer en absoluto.
Para los cuatro elementos, puede que no haya palabras que cumplan con los criterios o múltiples palabras. Las secuencias de comandos deben aceptar una lista de siete cadenas de caracteres alfabéticos en minúscula (az) que se almacenarán en una variable global denominada letterSetList . Por ejemplo, si el primer elemento de la lista es "abcdefl", las respuestas serían:
- "desfigurable"
- "incomodidad"
- "fibrocondrosteal"
- "formaldehído sulfofilato" y "científico-filosófico"
Todos los guiones serán probados en los mismos tres conjuntos de siete letras. Todas las palabras se tomarán del diccionario publicado a continuación. Acceda a él como una tabla de datos JMP cuando se ejecute su secuencia de comandos. Escribe todas las palabras en el registro. Asegúrese de incluir el número de artículo con la salida. Tendrá un límite de tiempo de cinco minutos en total. Las inscripciones deben recibirse antes de las 11:59 p.m., hora del este, del miércoles 15 de abril.
Puntuación: Dos puntos para cada solución correcta. Dos puntos adicionales para resolver los cuatro. Los tres guiones más rápidos (tiempo total para responder los cuatro ítems correctamente) recibirán 6, 3 y 1 puntos. Dos puntos para cualquier script que pueda producir la respuesta correcta que sea la mitad del tamaño o menos de la segunda más corta de las tres soluciones más rápidas (recuento total de caracteres sin espacios en blanco y sin comentarios). Tres puntos si su script se ejecuta tan rápido o más rápido que el en ayunas enviado por un miembro del personal.
¡Buena suerte!