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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [JS] ¿Programa para sumar los números pares de un intervalo dado?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [JS] ¿Programa para sumar los números pares de un intervalo dado?  (Leído 11,982 veces)
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
[JS] ¿Programa para sumar los números pares de un intervalo dado?
« en: 20 Junio 2013, 21:50 pm »

Recuerdo haber visto un enlace en Google pero ahora no lo encuentro, ¿alguien lo conoce? Gracias, un saludo.


En línea

Kase


Desconectado Desconectado

Mensajes: 1.288


programa bonito ¬¬


Ver Perfil WWW
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #1 en: 20 Junio 2013, 23:51 pm »

te prometo seras el alma de la fiesta..


2,4,6,12,20,30

se puede expresar como  n+n²


tu algoritmo queda como

a =  pedir primer numero
b = pedir segundo numero
(compruba que estos son pares si quieres?)
respuesta =  (a+a²) - (b+b²)


lo mejor es que al no tener ciclos la computadora no tarda ni una milesima en calcularlo ;)


ahora si, programa tu el JS :3


teoria: funciones generadoras; toda serie puede expresarse con una funcion


En línea

Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #2 en: 21 Junio 2013, 00:52 am »

Me temo que no lo entiendo... ¿el intervalo (307,520) por ejemplo se puede expresar como n + n2?  :huh:

Gracias por tu ayuda, un saludo.
En línea

Kase


Desconectado Desconectado

Mensajes: 1.288


programa bonito ¬¬


Ver Perfil WWW
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #3 en: 21 Junio 2013, 03:38 am »

el 307 no es par..

pero se puede expressar ese calculo como:

308/2 = 154 # esta es la posicion del 308 en la serie del (2,4,6,12,20,30....)
520/2 = 260


formula: (154+154²) - (260+260²)  

esto es igual a sumar los numeros pares entre el 307 y el 520
« Última modificación: 21 Junio 2013, 03:40 am por Kase » En línea

Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #4 en: 21 Junio 2013, 08:48 am »


el 307 no es par..


Yo no digo que lo sea, simplemente estipulo un intervalo. Igual que cuando se plantea "encuentra los múltiplos de 7 entre 10 y 20" no estamos diciendo que ni 10 ni 20 sean múltiplos de 7  :)



formula: (154+154²) - (260+260²)  
esto es igual a sumar los numeros pares entre el 307 y el 520


Imposible, puesto que la primera cantidad es menor que la segunda, de modo que obtendremos un número entero negativo.
Imagino que será en todo caso (260 +2602) - (154+1542)

Aparte, ¿esa fórmula debo pasarla al programa? ¿No habría que basarse en el módulo, buscando los números divisibles por 2 para almacenarlos y sumarlos?

Gracias por tu ayuda, un saludo.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #5 en: 21 Junio 2013, 10:05 am »

Kase: si calculo bien

Citar
a =  pedir primer numero
b = pedir segundo numero
(compruba que estos son pares si quieres?)
respuesta =  (a+a²) - (b+b²)

no se de donde sacaste la teoria loca... pero tienes +1 por pensar el camino del calculo antes del for...

pero veamos:
pares entre 2 y 20
(2+4)-(20+400)= 6-420 = 414 (asumo que siempre será positivo)

pero el resultado es incorrecto... debe ser 110

una mas simple... suma de pares entre 100 y 104

(100+10000)-(104+10816)=10100-10920=820
pero 100+102=202, 202+104=306

la respuesta quedó fue lejos!

luego cambiaste tu teoria por no ser los numeros sino sus "posiciones"

Citar
pero se puede expressar ese calculo como:

308/2 = 154 # esta es la posicion del 308 en la serie del (2,4,6,12,20,30....)
520/2 = 260

los mismos 2 intervalos
2,20 -> 1 y 10 -> (1 + 1²)-(10 + 10²)-> 2 - 110 -> 108 uff! cerca... pero no
(me da lala calcular el segundo, demostré mi punto)

la formula debería ser =
(p + u) * c /2

donde
p = primero
u = ultimo
c = cantidad de pares

y c puedes calcularlo como

c = ((u - p)/2)+1

quedando al final

(p + u) * (((u - p)/2)+1) /2


y probando con los 2 mismos intervalos

2,20
(2 + 20) * (((20-2)/2)+1) /2
(22) * (10) /2
220/2
110

y el otro
100,104
(100 + 104) * (((104-100)/2)+1) /2
(204) * (3) /2
612/2
306


Citar
Aparte, ¿esa fórmula debo pasarla al programa? ¿No habría que basarse en el módulo, buscando los números divisibles por 2 para almacenarlos y sumarlos?

supongo que es una tarea de la uni y tu profesor no estará muy agradecido que si está explicando ciclos llegues con formulas XD

así que mi solucion es la siguiente...

captura 2 variables, las llamaré P y U
y 2 variables internas
Resultado = 0
Conteo = 0

si P%2 != 0 entonces P++
si U%2 != 0 entonces U--
y P siempre debe ser menor que U

para (I = P, I<=U, I=I+2)
resultado = resultado + I


esas lineas deberían mas que hacer todo el trabajo XD

lo que está haciendo es que usa las variables del ciclo de una vez para sumar... por eso el ciclo salta de 2 en 2...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Kase


Desconectado Desconectado

Mensajes: 1.288


programa bonito ¬¬


Ver Perfil WWW
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #6 en: 21 Junio 2013, 10:08 am »

Citar
Imposible, puesto que la primera cantidad es menor que la segunda, de modo que obtendremos un número entero negativo.
Imagino que será en todo caso (260 +2602) - (154+1542)

Aparte, ¿esa fórmula debo pasarla al programa?
Gracias por tu ayuda, un saludo.

perdon.. si es la funcion como tu dices.. XD  


un programa quedaria como

Código
  1. function sumar_intervalo(a,b){
  2.     return  (b/2+math.pow(b/2,2) -(a/2+math.pow(a/2,2) )
  3. }

el como le pases los parametros es tu problema :P


Citar
¿No habría que basarse en el módulo, buscando los números divisibles por 2 para almacenarlos y sumarlos?
 claro. puedes hacerlo comose te de la gana...
pero como yo te digo  le causaras un  braindexplode a tu profesor ;)



mi forma de solucionarlo esta sustentado bajo la teoria de funciones generadoras
http://es.wikipedia.org/wiki/Funci%C3%B3n_generadora





prueba en python
Código
  1. def intervalo(a,b):
  2.  return (b/2+((b/2)**2)) - (a/2+((a/2)**2))
  3. >>> intervalo(0,6)
  4. 12
  5. >>> intervalo(0,2)
  6. 2
  7. >>> intervalo(0,4)
  8. 6
  9. >>> intervalo(0,10)
  10. 30
  11. >>> intervalo(0,30)
  12. 240
  13. >>> intervalo(0,4596)
  14. 5283102
  15. >>> intervalo(0,459640)
  16. 52817462220
  17.  
  18.  
nota, en python 0/2 es 0... no se si en otros lenguajes la maquina explote...


por que le das tantas vueltas? funciona? usalo :D
« Última modificación: 21 Junio 2013, 10:12 am por Kase » En línea

Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #7 en: 21 Junio 2013, 10:13 am »


supongo que es una tarea de la uni y tu profesor no estará muy agradecido que si está explicando ciclos llegues con formulas XD


Ni estoy en la uni, ni (por desgracia) tengo profesor, ni sé qué son ciclos. Simplemente trato de estudiar javascript por mi cuenta  :P

Intentaré descifrar lo que me explicas (estoy pegado en Matemáticas), muchas gracias  :)
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #8 en: 21 Junio 2013, 10:21 am »

y kase solo ignoró mi comentario y listo? XD

ahora has tu calculo con números iniciales diferentes de 0 y mira como falla


solo intenta entre 2 y 4 XD te dará 4

Citar
pero como yo te digo  le causaras un  braindexplode a tu profesor

en mi uni, solo te dirian,
1- explique y desmuestre su calculo como verdadero
2- explique como está relacionado eso con el tema de ciclos

y en ese caso simplemente tu cerebro no explotaria sino que diria "nothing to do here" XD
« Última modificación: 21 Junio 2013, 10:24 am por engelx » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] ¿Programa para sumar los números pares de un intervalo dado?
« Respuesta #9 en: 21 Junio 2013, 10:26 am »

Código
  1. function sumar_intervalo(a,b){
  2.     return  (b/2+math.pow(b/2,2) -(a/2+math.pow(a/2,2) )
  3. }


¡Muchas gracias! Pero ni idea de qué es math.pow  :P Qué lío tengo con la carretilla de manuales que me he descargado.



pero como yo te digo  le causaras un  braindexplode a tu profesor ;)


Es que no tengo ningún profesor. Sólo quiero (porque lo necesito) aprender javascript, y sólo javascript.



prueba en python


Uf ni idea, bastante lío tengo con javascript  :P



por que le das tantas vueltas? funciona? usalo :D


 :huh: No le doy vueltas, simplemente no sé hacer programas.

Muchas gracias, un saludo.
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines