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

236
Vistas
Encuentre el valor de 'paso' de una matriz arbitraria que está garantizada en una cierta cantidad de 'paso'

He mirado alrededor y no he encontrado ninguna respuesta para esto. El problema parece bastante simple al principio.

Digamos que tenemos una matriz como esta. Podemos suponer que la matriz SIEMPRE tendrá algo igual por lo que cuenta (cada elemento tiene la misma diferencia entre los elementos adyacentes).

 [1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0]

La respuesta a lo anterior sería 0.1 .

Otro ejemplo podría ser una matriz como esta.

 [0.2,0.4,0.6,0.8,1.0,1.2,1.4]

Esta respuesta sería 0.2

Una posible solución es que podría leer el primer y segundo parámetro de la matriz y capturar la diferencia y ese será mi 'paso'. ¿Es esta la mejor manera de hacer esto? ¿Hay alguna desventaja en este enfoque?

si la matriz estuviera contando hacia abajo así:

[0.8,0.6,0.4,0.2] , entonces, ¿cómo podría extraer el paso con éxito?

En este caso, necesito la respuesta -0.2 , mi respuesta no funcionaría y tomar el valor absoluto me daría 0.2 , no -0.2 .

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

0

No necesita ninguna lógica de caso especial para el caso de contar hacia abajo. En su segundo ejemplo, simplemente resta el primer término del segundo, 0.6 - 0.8 , y obtiene la respuesta correcta: -0.2 . Esto es similar a cómo en su primer ejemplo, restó el primer término del segundo, 0.4 - 0.2 y obtuvo la respuesta correcta.

Para convencerte de que esto funciona, considera que tu matriz comienza con un número real n y aumenta en un número real k en cada paso:

 [n, n + k, n + k*2, n + k*3, ...]

Luego puedes restar los dos primeros términos:

 (n + k) - n

Llegar

 k

El signo de k no importa.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto es lo mismo que tomar la diferencia común de una progresión aritmética en matemáticas. Puedes simplemente restar un término del término anterior y obtendrás la diferencia. Así es como se vería la matriz en términos generales:

 [a, a + d, a + 2d, a + 3d, ...]

Entonces, a partir de esto, puede ver fácilmente que si realiza (a + d) - (a) , obtendrá d . Restar cualquier elemento del elemento anterior dará el mismo resultado. Así que la forma más sencilla de hacer esto sería:

 const getStep = array => (array[1] - array[0]);

Demostración usando sus tres matrices provistas:

 const getStep = array => (array[1] - array[0]); console.log(getStep([1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0])); console.log(getStep([0.2,0.4,0.6,0.8,1.0,1.2,1.4])); console.log(getStep([0.8,0.6,0.4,0.2]));

Tenga en cuenta que los valores anteriores pueden ser inexactos ya que son números de coma flotante (las matemáticas de coma flotante están rotas ), pero puede redondearlos al x-ésimo lugar decimal más cercano (aquí hay una solución con un redondeo de 1/10, por ejemplo) :

 const getStep = array => Math.round((array[1] - array[0]) * 10) / 10; console.log(getStep([1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0])); console.log(getStep([0.2,0.4,0.6,0.8,1.0,1.2,1.4])); console.log(getStep([0.8,0.6,0.4,0.2]));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto en matemáticas se llama progresión aritmética. Si garantiza que la secuencia tiene el mismo paso, seguramente puede tomar la diferencia entre los 2 primeros números de la secuencia.

cuando cuenta hacia abajo, su secuencia es decreciente, por lo tanto, su paso es negativo. No hay forma posible de hacer descender esta secuencia sin un paso negativo.

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