El objetivo de Rosetta Stone Challenge es escribir soluciones en tantos idiomas como sea posible. ¡Muestra tu programación multilingüismo!
El reto
Su desafío es implementar un programa que mapee algunos genes usando frecuencias cruzadas, en tantos lenguajes de programación como sea posible . Se le permite usar cualquier tipo de función de biblioteca estándar que tenga su idioma, ya que esto es principalmente un escaparate de idiomas.
¿Qué es el "mapeo genético"?
El mapeo de genes es el proceso de localizar la posición relativa de los genes en los cromosomas. Esto se realiza midiendo la frecuencia de cruce de pares de genes, igual al porcentaje de descendencia en la que el par no se hereda juntos. La distancia se mide en unidades de mapa con una unidad de mapa igual al uno por ciento del cruce. Por ejemplo, si los genes C y D tienen una frecuencia de cruce del 11%, entonces el gen C está a una distancia de 11 unidades de mapa del gen D.
El mapeo de genes se realiza con múltiples pares de genes para determinar su orden relativo. Por ejemplo, los datos (A,B,12) (D,B,7) (A,D,5) (D,H,2) (H,B,9)
producen el siguiente mapa:
A..H.D......B
Es posible que haya notado que B......D.H..A
también es un mapa válido. Esto es cierto, porque no es posible distinguir entre los espejos opuestos. Su programa puede elegir cuál emitir. Aunque la entrada puede no incluir todos los pares posibles, siempre habrá suficiente información para reconstruir todo el mapa (por lo que nunca habrá más de 2 salidas válidas). Además, los números siempre funcionarán (a diferencia de la biología real), lo que significa que no tendrás cosas como estas (A,B,3) (B,C,4) (A,C,13)
.
Entrada
La entrada comenzará con un número n
seguido de una lista de genes (letras mayúsculas). Entonces habrá n
trillizos de datos. Cada conjunto constará de un par de genes y su cruce sobre la frecuencia (distancia).
3,P,H,I
P,H,3
H,I,1
P,I,4
7,A,B,G,Q,U
B,Q,4
A,B,10
G,U,13
Q,U,10
A,G,9
G,Q,3
A,Q,6
La entrada no está rígidamente definida, porque diferentes idiomas pueden tener restricciones sobre lo que es factible. Por ejemplo, puede cambiar los delimitadores a algo distinto de comas y líneas nuevas. El formato de entrada depende en gran medida de usted.
Salida
La salida será una representación del mapa genético. Consistirá en los genes (letras mayúsculas) espaciados por períodos de modo que las distancias se representen con precisión. Aquí están las salidas para los ejemplos anteriores.
P..HI *or* IH..P
BG..Q.....A...U *or* U...A.....Q..GB
Esto tampoco es un requisito completamente rígido. Por ejemplo, podría usar algo distinto de puntos, como comas o espacios.
El criterio objetivo ganador
En cuanto a un criterio ganador objetivo, aquí está: cada idioma es una competencia separada en cuanto a quién puede escribir la entrada más corta, pero el ganador general sería la persona que gana la mayoría de estas subcompeticiones. Esto significa que una persona que responde en muchos idiomas poco comunes puede obtener una ventaja. Code-golf es principalmente un factor decisivo para cuando hay más de una solución en un idioma: la persona con el programa más corto obtiene crédito por ese idioma.
Reglas, restricciones y notas
Su programa se puede escribir en cualquier idioma que existiera antes del 20 de diciembre de 2013. También tendré que confiar en la comunidad para validar algunas respuestas escritas en algunos de los idiomas más infrecuentes / esotéricos, ya que es poco probable que pueda probar ellos.
Tabla de clasificación actual
Esta sección se actualizará periódicamente para mostrar la cantidad de idiomas y quién lidera cada uno.
- AutoHotkey (632) - Avi
- dj (579) - rubik
Ranking de usuarios actuales
- Avi (1): AutoHotkey (632)
- rubik (1): dj (579)
fuente
n
, sino principalmente los límites para el cruce sobre la frecuencia (distancia). ¿Podemos suponer que siempre será, digamos, menor que1000
?Respuestas:
AutoHotkey (632)
El código puede acortarse más cambiando el nombre de todos los vars a 1 carácter. Debería tener unos 610 caracteres.
Casos de prueba
fuente
Python 311
Mi primer código de golf: D
(No estoy seguro con el conteo, simplemente lo publico en línea en un recuento de caracteres)
La idea del algoritmo es bastante mala, pero es corta. Pruebe al azar todas las posiciones de los símbolos hasta que cumplan con todas las restricciones. La entrada es con espacios en blanco, por ejemplo
Presione luego CTRL + D en la consola para finalizar la lectura.
Aquí está el código original que todavía usa ',' como delimitador.
fuente
dg -
717579 bytesUn Python está entrando.
Ejemplos:
fuente
fuente