Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

104
Vistas
Distribuir la lista de bits en una cantidad dada de ranuras

Dado un campo de bits como el siguiente (los números solo pueden ser 1 o 0):

 const bits = [1, 1, 0, 1, 0, 0, 0, 1]

Quiero generar una lista de N valores promedio donde N es un número arbitrario.

En nuestro ejemplo anterior, dado que N es 4, el resultado sería [1, 0.5, 0, 0.5] . (agrupe la matriz de 2 en 2 y luego calcule el número promedio de cada grupo).

Si, en cambio, N fuera 2, el resultado sería [0.75, 0.25] .

He estado usando el siguiente código hasta ahora:

 const average = (...args) => args.reduce((a, b) => a + b) / args.length; const averageNumbers = Ramda.splitEvery(Math.floor(bits.length / N), bits).map(nums => average(nums))

El problema es que lo anterior no funciona en caso de que mi matriz de bits esté compuesta por 696 valores y necesito 150 números promedio, porque termino teniendo 174 números en lugar de 150.

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Como se menciona en los comentarios, terminas con 174 números en lugar de 150 porque floor(696 / 150) divide el campo de bits en 174 partes de 4 bits.

Para obtener un valor aproximado para los promedios, primero puede "expandir" el campo de bits a una longitud que sea un múltiplo de N antes de tomar los promedios.

 // Factor is the lowest number to expand bits by for its length to be a multiple of N const factor = lcm(bits.length, N) / bits.length; // Expand bits by the factor const expandedBits = bits.map(bit => Array(factor).fill(bit)).flat(1); const averages = splitEvery(Math.floor(expandedBits.length / N), expandedBits).map(nums => average(...nums)); // averages.length should now always be N
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda