Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

105
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda