elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Doble factor de autenticación o verificación en dos pasos


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  igualar todos los numeros dentro del array - Ejercicio Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: igualar todos los numeros dentro del array - Ejercicio Java  (Leído 1,240 veces)
shishioku

Desconectado Desconectado

Mensajes: 4


Ver Perfil
igualar todos los numeros dentro del array - Ejercicio Java
« en: 8 Julio 2019, 20:25 »

Hola tengo este ejercicio que me cuesta resolver, si alguien puede lograrlo, me gustaría saber como lo resolvió.


hay que codear la función " iterationsToEquality(array of integer) el cual retornara un int que sera la cantidad mínima de iteraciones para lograr igualar el valor de todos los números del array.
para lograrlo tenes que suman 1 a cada elemento del array, excepto al de mas valor, esto por cada iteracion , si hay 2 elementos con el mismo valor (los 2 mas altos) considerar solo 1 como tal .
array {1.3.3}

deberían quedar todos en 5,5,5.


En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.085


Turn off the red ligth


Ver Perfil WWW
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #1 en: 8 Julio 2019, 20:56 »

Sumale 1 a todos los elementos del array menos al mayor.
Solo tienes que comprobar el mayor numero y sumarle 1 a todos los elementos que no valgan lo mismo. Despues compruebas el menor al final de cada iteración. Si todos valen lo mismo sales del bucle.
Pon una variable a 0 y la usas de contador sumandole +1 en el bucle. Asi por cada iteracion se le suma uno.

Al salir del bucle retornas la variable.


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.263


Ver Perfil
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #2 en: 9 Julio 2019, 17:48 »

El ejecrcicio, parece más bien diseñado para demostrar si una persona piensa por sí misma o simplemente se pone con la fuerza bruta a resolver el problema sin pararse a pensar un poco.


Veamos sea un array de 5 valores, y estos en concreto: 9, 15, 11, 19, 12
Claramente se vé que para que todos alcancan el valor 19, que es el más alto, bastarán 19-9 = 10 iteraciones, pués es la diferencia entre el menor y el mayor en el array.
9--> 10, 11,12,13,14,15,16,17,18-->19

...por tanto el problema se limita a recorrer en 2 bucles para llegar a la solución:
--- 1ª vez, para encontrar el mayor y menor elementos en el array

--- después se realiza la resta:
Código:
maxIteraciones = ValorMaximo - ValorMinimo
Maxiteraciones es el valor a devolver...

--- 2ª vez, por su parte un segundo recorrido en el array (si se reclama), pone todo el array con el valor máximo:
Código:
Para k desde 0 hasta array.length -1
     array(k) = valormaximo
siguiente
Este bucle por tanto optimiza la pérdida de eficiencia de sumar 1 a cada ítem en el array, excepto al mayor encontrado... pués hacerlo de forma ineficiente exigiría 2 bucles anidados...


Me edito antes de enviar... al releer, veo que si el array de entrada contiene 1,3,3 y la salida 5,5,5 es claro que incluso al valor mayor se le suma la diferencia (aunque esto contadice lo que la prosa describe)... Como hay cierta ambigüedad entre lo que se dice en prosa y lo que s emuestra de ejemplo, no cambio nada previo, si señalo que resuleto el caso que sea, si procede... luego pensando solo un poco más puedes modificar lo antedicho para lograr tu objetivo...
« Última modificación: 9 Julio 2019, 17:51 por NEBIRE » En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.085


Turn off the red ligth


Ver Perfil WWW
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #3 en: 10 Julio 2019, 08:06 »

NEBIRE el problema indica los pasos a seguir, no que lo resuelvas de una forma más eficiente. Dice explicitamente sumar +1 por cada iteración.
A mi el ejercicio me parece diseňado para practicar el manejo de bucles, funciones, arrays, contadores y condicionales. T
En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.263


Ver Perfil
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #4 en: 10 Julio 2019, 15:32 »

Lo que se pide, no tiene porqué hacerse como se dice.

Este es precisamente un caso, donde se presta con suma facilidad a que el alumno demuestre entender y poner en práctica sus conocimientos.

Para hacer las cosas maquinalmente se construyeron las máquinas, las personas tienen (y deben usar) la capacidad de improvisar si supone mejoras (y sigue cumpliendo el objetivo final).

En fin, la diferencia entre el alumno que memoriza y el que aplica el conocimiento adquirido tiene aquí su ejemplo. El alumno que se conforme con 'repetir' como un loro lo que le han dicho, será el profesioal desechable en su puesto de trabajo en el futuro... Esta profesión (en toda su amplitud) requiere la capacidad de improvisar, de mejorar constantemente, no de conformarse y un profesor tiene la obligación de alentar esa cualidad.

...los bucles, arrays, funciones... no por ello dejan de ser ejercitados, se requieren igualmente.
En línea

shishioku

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #5 en: 11 Julio 2019, 02:50 »


"Veamos sea un array de 5 valores, y estos en concreto: 9, 15, 11, 19, 12
Claramente se vé que para que todos alcancan el valor 19, que es el más alto, bastarán 19-9 = 10 iteraciones,"
Son 16 iteraciones , por que cuando lleguen 2 valores a 19, tiene que tomar 1 para subirlo, por lo cual subirán todos e incluso un 19, ese 19 quedara en 20 y así sucesivamente hasta que queden todos en 25.



En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.085


Turn off the red ligth


Ver Perfil WWW
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #6 en: 11 Julio 2019, 03:34 »

Tienes razón. El planteamiento es el mismo que plantee cambiando los números e valgan lo mismo por unicamente tomar el mayor como dices.

No me fijé en el ejemplobque pusiste al final del programa disculpa.
« Última modificación: 11 Julio 2019, 03:37 por string Manolo » En línea

shishioku

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #7 en: 11 Julio 2019, 03:54 »

Ya lo puse resolver Gente! gracias igual.
Me enrosco mucho en cosas super dificiles y resulto ser una boludez.

    public static int iterationToEquiality(int[] array){
       
        int variable=0;
        int countA = 0;
       
        ArrayList<Integer> lista = new ArrayList<>();   
       
       
        for (int i = 0; i < array.length-1; i++) {
            variable = array;
            for (int j = 0; j < array.length-1; j++) {
               
                if (variable == array[j]) {
                    lista.add(j);
                    countA++;
                }
                if (variable != array[j]) {
                    lista.add(j);
                    countA++;
                }
               
                lista.get(j).equals(j);
            }
           
        }
       
      return countA;
           
   
   }
En línea

MinusFour
Colaborador
***
Desconectado Desconectado

Mensajes: 4.897


I'm fourth.


Ver Perfil WWW
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #8 en: 11 Julio 2019, 04:29 »

Si te entendi correctamente, si tuvieras tres numeros:

1, 1, 0

Entonces haría:

1, 2, 1
2, 2, 2

Y Si tuvieras:

1, 1, 1, 0

Entonces haría:

1, 2, 2, 1
2, 2, 3, 2
3, 3, 3, 3

Si es así, el número mas alto que estás buscando de 19, 15, 12, 11, 9 no es 25 sino 30. Y te tomaría 21 iteraciones.
En línea

shishioku

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: igualar todos los numeros dentro del array - Ejercicio Java
« Respuesta #9 en: 11 Julio 2019, 21:55 »

Si te entendi correctamente, si tuvieras tres numeros:

1, 1, 0

Entonces haría:

1, 2, 1
2, 2, 2

Y Si tuvieras:

1, 1, 1, 0

Entonces haría:

1, 2, 2, 1
2, 2, 3, 2
3, 3, 3, 3

Si es así, el número mas alto que estás buscando de 19, 15, 12, 11, 9 no es 25 sino 30. Y te tomaría 21 iteraciones.


19 16 13 12 10
19 17 14 13 11
19 18 15 14 12
19 19 16 15 13
20 19 17 16 14
20 20 18 17 15
21 20 19 18 16
21 21 20 19 17
22 21 21 20 18
22 22 22 21 19
23 22 22 22 20
23 23 23 23 21
24 23 23 23 22
24 24 24 24 23
25 24 24 24 24
25 25 25 25 25
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda! ejercicio con array! :-\
Java
emuraydem 4 1,855 Último mensaje 20 Julio 2010, 08:54
por Gallu
problema con ejercicio array+function
Desarrollo Web
xemnas 7 1,424 Último mensaje 9 Noviembre 2011, 01:26
por WHK
Array que lea ciertos números
Programación C/C++
DickGumshoe 2 972 Último mensaje 15 Enero 2012, 01:18
por DickGumshoe
Array con numeros primos.
Programación C/C++
Ja_90 2 19,643 Último mensaje 5 Septiembre 2014, 17:16
por Ja_90
[java]Reconocimiento de números primos en array
Java
Wick3D 3 4,292 Último mensaje 26 Diciembre 2016, 16:59
por kingcreek
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines