La distancia de Hamming entre dos cadenas de igual longitud es el número de posiciones en las que los símbolos correspondientes son diferentes.
Dejado Pser una cadena binaria de longitud ny Tser una cadena binaria de longitud 2n-1. Podemos calcular las ndistancias de Hamming entre Py cada nsubcadena de longitud Ten orden de izquierda a derecha y ponerlas en una matriz (o lista).
Ejemplo de secuencia de distancia de Hamming
Deje P = 101y T = 01100. La secuencia de distancias de Hamming que obtienes de este par es 2,2,1.
Tarea
Para aumentar a npartir de n=1, considere todos los pares posibles de cadenas binarias Pde longitud ny Tlongitud 2n-1. Hay 2**(n+2n-1)tales pares y, por lo tanto, muchas secuencias de distancias de Hamming. Sin embargo, muchas de esas secuencias serán idénticas. La tarea es encontrar cuántos son distintos para cada uno n.
Su código debe generar un número por valor de n.
Puntuación
Su puntaje es el más alto nque alcanza su código en mi máquina en 5 minutos. El tiempo es para el tiempo total de funcionamiento, no el tiempo solo para eso n.
Quién gana
La persona con el puntaje más alto gana. Si dos o más personas terminan con el mismo puntaje, entonces es la primera respuesta que gana.
Ejemplos de respuestas
Para nde 1a 8las respuestas óptimas son 2, 9, 48, 297, 2040, 15425, 125232, 1070553.
Idiomas y bibliotecas
Puede usar cualquier idioma y bibliotecas disponibles que desee. Siempre que sea posible, sería bueno poder ejecutar su código, por lo tanto, si es posible, incluya una explicación completa sobre cómo ejecutar / compilar su código en Linux.
Mi máquina Los tiempos se ejecutarán en mi máquina de 64 bits. Esta es una instalación estándar de ubuntu con 8 GB de RAM, procesador AMD FX-8350 de ocho núcleos y Radeon HD 4250. Esto también significa que necesito poder ejecutar su código.
Respuestas principales
- 11 en C ++ por feersum. 25 segundos
- 11 en C ++ por Andrew Epstein. 176 segundos
- 10 en Javascript por Neil. 54 segundos
- 9 en Haskell por nimi. 4 minutos y 59 segundos.
- 8 en Javascript por fəˈnɛtɪk. 10 segundos.
fastest-codedeja más espacio para optimizaciones a través de optimizaciones de nivel de código y un buen algoritmo. Así que creo que faster-codees mejor que faster-algorithm.