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

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

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 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