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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  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 7,654 veces)
shishioku

Desconectado Desconectado

Mensajes: 4


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

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
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


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

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

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


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

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 pm por NEBIRE » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


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

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

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


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

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


"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
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


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

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 am por string Manolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

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

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


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

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

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 3,167 Último mensaje 20 Julio 2010, 08:54 am
por Gallu
Array que lea ciertos números
Programación C/C++
DickGumshoe 2 2,405 Último mensaje 15 Enero 2012, 01:18 am
por DickGumshoe
[java]Reconocimiento de números primos en array
Java
Wick3D 3 8,801 Último mensaje 26 Diciembre 2016, 16:59 pm
por kingcreek
Hola a todos!! Ayuda con ejercicio Java
Java
luanitax 1 2,942 Último mensaje 9 Septiembre 2021, 04:00 am
por MCKSys Argentina
MOVIDO: Hola a todos!! Ayuda con ejercicio Java
Programación General
MCKSys Argentina 0 2,225 Último mensaje 9 Septiembre 2021, 03:41 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines