Autor Tema: Algoritmo de positivización de vectores

0 Usuarios y 1 Visitante están viendo este tema.

23 Marzo, 2023, 08:11 pm
Leído 930 veces

Quema

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 2,109
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Si tengo un vector de números reales \( \mathbf{x}=(x_1,x_2,...x_N) \) ordenados de forma decreciente supongamos que \( \displaystyle\sum_{i=1}^n{x_i}>0. \) Quiero escribir formalmente y con un diagrama de flujo este algoritmo y cuál es su orden de crecimiento?

i) Si \( x_N\geq 0 \) entonces paro y el resultado es  \( \mathbf{x}. \)
ii) Si \( x_N<0 \) entonces genero un vector  \( (x_1+x_N,x_2,...,0) \) lo reordeno de forma decreciente, que le llamo  \( \mathbf{y} \) y vuelvo al punto i).

Ejemplos,
1) supongamos que tengo un vector  \( \mathbf{x}=(3,1,0) \) entonces el algoritmo diría resultado  \( \mathbf{x} \).
2) Ahora  \( \mathbf{x}=(4,-1,-2) \) entonces serían dos etapas  \( (2,0,-1) \) y el resultado final  \( \mathbf{y}=(1,0,0) \)



23 Marzo, 2023, 09:57 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

 Algo así:

\(  X=(x_1,x_2,\ldots,x_N)  \)

 Mientras \( x_N\leq 0 \)
    \( Y=(x_1+x_N,x_2,\ldots,0) \)
    \( X=ordena(Y) \),
 Fin mientras

 ¿A qué te refieres con orden de crecimiento?.

Saludos.

CORREGIDO

24 Marzo, 2023, 04:10 am
Respuesta #2

Quema

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 2,109
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
El orden, el tiempo de ejecución.

24 Marzo, 2023, 07:30 am
Respuesta #3

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

El orden, el tiempo de ejecución.

Pues el número de pasos es a lo sumo igual a \( N-1 \), ya que en cada paso aseguramos al menos un elemento más no negativo (además del \( X_1 \) que necesariamente lo era).

El vector inicial \( X=(N,-1,-1,\ldots,-1) \) muestra que siempre hay vectores para los cuáles hay que completar todos los pasos.

Saludos.

24 Marzo, 2023, 02:56 pm
Respuesta #4

Quema

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 2,109
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Cómo sería el diagrama de flujo del algoritmo?

24 Marzo, 2023, 08:38 pm
Respuesta #5

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Cómo sería el diagrama de flujo del algoritmo?



Saludos.

24 Marzo, 2023, 08:48 pm
Respuesta #6

Quema

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 2,109
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Gracias, en realidad es \( x_1+x_n \), no menos. Y Ordena() eso es en Mathematica?

24 Marzo, 2023, 09:04 pm
Respuesta #7

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Gracias, en realidad es \( x_1+x_n \), no menos. Y Ordena() eso es en Mathematica?

Si, me equivoqué; es más.

No es Mathematica; un diagrama de flujo como un pseudocógido la idea es que no dependa del lenguaje de programación. Da una visión esquemática del algortimo; simplemente quiere decir que se ordena en orden decreciente el vector.

Saludos.