Página 1 de 1

Reto de promacion[ NIVEL BASICO]

Publicado: 04 Mar 2017, 19:44
por crack81
Con el motivo de que mas usuarios se animen aportar me incluyo, he decidido empezar una serie de retos de programacion prinicipalmente basico y de nivel intermedio para que la comunidad pueda publicar sus implementacion no importando el lenguaje. Bueno menos charla empezemos con el problema:


Problema:
Aunque el problema es muy simple les dejo la solucion, ojo para los nuevos no se engañen viendo antes la solucion

Mostrar/Ocultar

Saludos... :drinking:

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 04 Mar 2017, 20:41
por Melbourne
no entendi bien tenemos que introducir un rango y sacar tdos los numeros impares y mostrar el resultado de su suma?
porque pones en input:
2
1
5
3
3
output:
case 1: 9
case 2: 8

¿? No era solamente sacar el rango de 1-5? Ya que los pares no cuentas si me puedes aclaras el ejercicio un poco merci mi logica no es muy buena.

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 04 Mar 2017, 21:43
por crack81
Claro que si, mira el primer 2 indica la cantidad de entradas que en el caso de ejemplo son 2

entrada 1:
1
5

en la primera entrada tenemos los numeros del 1 al 5 si vemos todo los numeros impares entre esos dos digitos nos daria
1 3 5 y si los sumamos nos daria como resultado 1+3+5= 9

entrada 2:
3
5
en la segunda entrada tenemos los numeros del 3 al 5 hacemos lo mismo que en la entrada uno
3 + 5 = 8


Saludos....

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 05 Mar 2017, 18:44
por SadFud
Mi solucion:

Mostrar/Ocultar


Re: Reto de promacion[ NIVEL BASICO]

Publicado: 05 Mar 2017, 20:50
por crack81
@Sadfud excelente aunque haya estado bien que hayas metido tu codigo entre etiquetas de spoiler para que los nuevos no vieran el codigo, publique otro problemilla espero te animes con ese tambien.
Saludos.... :drinking:

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 07 Mar 2017, 14:48
por Scorpio
Un poco tarde pero aquí tienes la mia en AutoIt. :drinking:

Mostrar/Ocultar

//Regards.

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 08 Mar 2017, 19:46
por albertobsd
Aun que el programa tiene pinta de basico, No se dejen engañar, Si les piden el pero de los casos
T = 100 y de A = 0 hasta B = 100 (100 veces) y lo hacen de forma Iterativa Desde A hasta B, su programa se ejecutara en un ciclo de almenos 10000 Operaciones.

Busquen la forma matematica para encontar la suma de los impares en un rango dado y el programa sera mas eficiente.

Saludos!

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 08 Mar 2017, 21:01
por albertobsd
Dejo mi codigo, como les comente, no es necesario iterar entre todos los los numeros de A hasta B, basta con la formula, incluso creo que se podria reducir mas, pero eso ya se los dejo a su consideracion.

Mostrar/Ocultar


Re: Reto de promacion[ NIVEL BASICO]

Publicado: 09 Mar 2017, 00:41
por Scorpio
albertobsd escribió: 08 Mar 2017, 19:46 Aun que el programa tiene pinta de basico, No se dejen engañar, Si les piden el pero de los casos
T = 100 y de A = 0 hasta B = 100 (100 veces) y lo hacen de forma Iterativa Desde A hasta B, su programa se ejecutara en un ciclo de almenos 10000 Operaciones.

Busquen la forma matematica para encontar la suma de los impares en un rango dado y el programa sera mas eficiente.

Saludos!
No se a que te refieres pero aqui una optimizacion del mio con 50 iteracciones con un rango de 0 - 100.
_Problemita Iteracciones: 101
_Problemita Result: 2500
_Problemita2 Iteracciones: 50
_Problemita2 Result: 2500

Mostrar/Ocultar

//Regards.

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 09 Mar 2017, 01:57
por Melbourne
Aqui lo que intente sin iterar 10000 veces:

Mostrar/Ocultar



Se refiere a que si tienes 100 entradas y iteras 100 veces el programa tendrá que realizar 10.000 iteraciones por lo que creo que sería menos eficiente. Por lo que se podría calcular directamente con una formula sin necesidad de iterar. Pero por cierto sabiendo el numero de impares de un impar impar, par par, impar par se podría calcular pero el calcula con la formula sin necesidad de saberel numero de impares.

Re: Reto de promacion[ NIVEL BASICO]

Publicado: 09 Mar 2017, 06:13
por crack81
@davinciomar Muy interesante preguntas has planteado aunque en el algoritmo no se especifica tiempo, la mayoria de las implementaciones tiene una complejidad O(n) y en los mejores caos O(n/2) que es relativamente buena claro que se puede mejorar como dices por ello me decidi a codificar otro algoritmo que remplace los bucles por simples formulas matematicas que en performance se gana mucho.

Este algortimo se acerca al santo grial del O(1) pero claro se puede pulir mas intente no simplificar demasidado las formulas para que se entiendan pero claro puede quedar mas corto.

Mostrar/Ocultar


Re: Reto de promacion[ NIVEL BASICO]

Publicado: 10 Mar 2017, 17:08
por albertobsd
Scorpio escribió: No se a que te refieres pero aqui una optimizacion del mio con 50 iteracciones con un rango de 0 - 100.
//Regards.
Presisamente me refiero a que no es necesario Iterar ni las 50 veces que tu iteras para el caso de 0 a 100, basta con unas cuantas sumas restas multiplicaciones y divisiones para obtener el resultado.

Dejo mi codigo:

Mostrar/Ocultar


Re: Reto de promacion[ NIVEL BASICO]

Publicado: 10 Mar 2017, 19:01
por crack81
Excelente @albertobsd muy buena implementacion, tuve un detalle co los saltos de linea que le colocaste al momento de leer el numero ya que no trabajaba de manera esperada se los quite y anduvo bien.
Saludos...