Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

103
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!