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

243
Vistas
Número redondeado al número más cercano más adecuado para que pueda calcular el intervalo que es un factor de 2, 5 o 10

Puede haber cualquier número especificado, entonces quiero escribir una función para devolver el mejor número de límite superior para calcular el intervalo.

Para dividir el número en 5 intervalos, los mejores números son

  1. si es menor o igual a 5 = dividir en 1, 2, 3, 4, 5
  2. si 10 => dividir en 2, 4, 6, 8, 10
  3. si 25 => dividir en 5, 10, 15, 20, 25
  4. si 50 => dividir en 10, 20, 30, 40, 50
  5. si 100 => dividir en 20, 40, 60, 80, 100
  6. si 125 => dividir en 25, 50, 75, 100, 125
  7. Si 500 => dividir en 100, 200, 300, 400, 500

Pero el número de entrada, no puede ser ese 5, 10, 25, 50, 100, 125, 500,...

Así que me gustaría escribir una función que pueda devolver el mejor número en negrita, pero ahora estoy atascado. Quiero calcular sobre la marcha. No hay valores predefinidos ya que no sé cuál sería el número de entrada. Para menos o igual a 10, puedo agregar más para manejar, pero más de 10, quiero pasar por algún cálculo de fórmula.

aporte producción
8 10
13 25
110 125
456 500
1601 2000
53194 60000

¿Hay alguna fórmula para calcular para que pueda escribir la función que toma la entrada anterior y devuelve la salida? Muchas gracias.

La razón para no dividir 110 en 22, 44, 66, 88, 110, estos números no son adecuados para aparecer en el eje del gráfico excepto 2, 4, 6, 8, 10.

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

0

Sugiero definir su intervalo de alguna manera como esta:

Para un número de entrada positivo n, encuentre el intervalo mínimo i tal que 5i >= n e i sea una de las siguientes formas: 10^k, 2(10^k), 5(10^k) o 25(10^ k), donde k es un número entero no negativo

Luego puede resolver las desigualdades resultantes tomando logaritmos y tomando la solución mínima viable para encontrar el intervalo.

 function interval(n, steps=5) { // Find the minimum x such that x = a*b^k >= n / steps, where k is an integer const solve = (a, b) => a * b ** Math.ceil(Math.log((n / steps) / a) / Math.log(b)); // Return the lowest of the possible solutions return Math.min( solve(1, 10), solve(2, 10), solve(5, 10), solve(25, 10) ); } // alternatively const interval = (n, steps=5) => Math.min(...[1, 2, 5, 25].map(a => a * 10 ** Math.ceil(Math.log10((n / steps) / a)))); const inputs = [5, 8, 13, 110, 456, 1601, 53194]; console.log("input\t int\t limit"); for (const n of inputs) { console.log(n, '\t', interval(n), '\t', 5 * interval(n)); }

Esto no coincide con su salida sugerida en todos los casos, pero proporciona valores razonables y consistentes. Puede ajustar los formularios que están permitidos si desea modificar esto.

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