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

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

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 Report

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 Report

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