Bienvenido, invitado ( Identificarse | Registrarse )

 
Reply to this topicStart new topic
Bucle infinito?, 121 - Juguemos con Newton y Rhapson
HySTD
mensaje 31/07/2008 22:13
Publicado: #1
Lurker




Grupo: Miembro
Mensajes: 4
Registrado: 29/06/2008
Desde: España
País: España
Ranking : 172 º/ 150.24
Avance : 10.86 %
All Stars
Sistemas OperativosIngenioCienciasLenguajes de ProgramaciónMixLenguajes Diseño WebEsteganografíaCrackingSeguridadMisiones ImposiblesCriptografiaIngeniería Inversa
Comunidad: Hackhispano.com
Rank: ON



Buenas! estoy con el reto de Newton y Raphson. Resumiendo diré que me he implementado un programa que lo resuelve de forma automática, para el x0 inicial.

La cuestión es que tras enviar la solución, vuelve a aparecer un nuevo polinomio y una nueva x0. Del mismo modo lo resuelvo y lo envio, todo en menos de 1 segundo. Pero la cosa se vuelve a repetir indefinidamente.

He tenido en cuenta las restricciones (error > 0.01 y numeroiteraciones<1000), además redondeo a 5 decimales...

No sé en donde está el fallo ya que personalmente creo haber conseguido solucionar el reto, puesto que lo resuelvo y envío en menos de 1 segundo...

Quisiera saber si el fallo está en el redondeo, o en la velocidad de mi conexion xD, o verdaderamente mi programa está fallando (no lo creo puesto que efectivamente las soluciones que genera son las correctas)... por ello ruego que, por ir descartando, me confirmen, a modo de ejemplo si son correctas las siguientes soluciones que deben enviarse:

CÓDIGO
--------------------------
f(x)=-81*x^8-44*x^7+55*x^6-50*x^5+6*x^4-78*x^3-18*x^2+17*x^1+42
x0 = 9
solucion = 0,74085
--------------------------

f(x)=+71*x^11+75*x^10+20*x^9-80*x^8+28*x^7+3*x^6-50*x^5+80*x^4+25*x^3-36*x^2-22*x^1-42
x0 = 2
solucion = 0,92343  (solución completa: 0,923425331404713)
--------------------------

f(x)=+38*x^10-68*x^9-37*x^8+88*x^7+89*x^6-41*x^5+69*x^4-98*x^3+57*x^2-82*x^1+14
x0 = 9
solucion = 0,91511 (solución completa: 0,915108734181846)
--------------------------

f(x)=-9*x^13-65*x^12+58*x^11-90*x^10-44*x^9-35*x^8+16*x^7-97*x^6-28*x^5+74*x^4+69*x^3+35*x^2-87*x^1-58
x0 = 5
solucion = -0,85309 (solución completa: -0,853087212135105)
--------------------------


Ruego me confirmen si efectivamente esas son las soluciones que se están pidiendo (por el tema del redondeo o si es truncamiento, etc...)

Personalmente me doy por satisfecho :p por haberlo conseguido ;), la verdad es que conociendo el método (lo recuerdo en mi primer año en la facultad :)), no es tan dificil...

Un saludo
Go to the top of the page
 
+Quote Post
Sinfocol.org
mensaje 01/08/2008 04:13
Publicado: #2
Campeón de las Temporadas del 2013 al 2017
Ícono de Grupo



Grupo: Administrador
Mensajes: 112
Registrado: 25/09/2005
Desde: Colombia
País: Colombia
Comunidad: Yashira.org
Rank: OFF



Si de algo te ayuda te puedo dejar el proceso completo de mi script.
Acá está:
CÓDIGO
f(x)=-15*x^8+55*x^7+38*x^6-73*x^5-91*x^4+69*x^3+80*x^2-10*x^1-22
f(x)=-15*pow($x,8)+55*pow($x,7)+38*pow($x,6)-73*pow($x,5)-91*pow($x,4)+69*pow($x,3)+80*pow($x,2)-10*pow($x,1)-22
f'(x)=-15*8*pow($x,7)+55*7*pow($x,6)+38*6*pow($x,5)-73*5*pow($x,4)-91*4*pow($x,3)+69*3*pow($x,2)+80*2*pow($x,1)-10*1*pow($x,0)
x0=7

i: 0 - 6.2478654279394030268690585217
error12.0382645998932318320839840453
i: 1 - 5.6059087576773674044261497329
error11.4514291618262120664439862594
i: 2 - 5.06645997908032974521574942628
error10.6474497148788103118022263516
i: 3 - 4.62621038419321717327648002538
error9.51641966805816608143686607946
i: 4 - 4.28769526010962920281599508598
error7.89503692654996847011261706939
i: 5 - 4.05976492080025597175563234487
error5.61437284561895033618839079281
i: 6 - 3.9479341125593636618873460975
error2.83264120049852419214175824891
i: 7 - 3.92178434843861278835674966103
error0.666782306150054626669998469879
3.92178000000000004376943252282


Y este es la petición:
POST /ReTos/All/raices.php HTTP/1.1
Host: www.yashira.org
Referer: http://www.yashira.org/ReTos/All/raices.php
Connection: Close
Content-Type: application/x-www-form-urlencoded
Content-Length: 35

res=3.92178000000000004376943252282

Al parecer no hice el redondeo y funcionó xD.
Si queres ver cuánto tiempo te demoraste en hacer la petición y estas trabajando con PHP, al instante de hacer la petición a la página para que te de la función pones:
"$time=explode(' ',microtime());
$b=$time[1]+$time[0];"
Y al final cuando termines de hacer la petición pones:
"$time=explode(' ',microtime());
$e=$time[1]+$time[0];
echo $e-$b;"
Y el tiempo que te sale está dado en milisegundos.

Saludos
Go to the top of the page
 
+Quote Post
HySTD
mensaje 19/08/2008 02:14
Publicado: #3
Lurker




Grupo: Miembro
Mensajes: 4
Registrado: 29/06/2008
Desde: España
País: España
Ranking : 172 º/ 150.24
Avance : 10.86 %
All Stars
Sistemas OperativosIngenioCienciasLenguajes de ProgramaciónMixLenguajes Diseño WebEsteganografíaCrackingSeguridadMisiones ImposiblesCriptografiaIngeniería Inversa
Comunidad: Hackhispano.com
Rank: ON



Buenas! he comprobado el polinomio que presentas, y estos son los resultados obtenidos con mi aplicación:

x0 = 7
x1 = 6,2478654279394 - error = 12,0382645998932
x2 = 5,60590875767736 - error = 11,4514291618263
x3 = 5,06645997908033 - error = 10,6474497148788
x4 = 4,62621038419322 - error = 9,51641966805811
x5 = 4,28769526010963 - error = 7,89503692654999
x6 = 4,05976492080026 - error = 5,61437284561879
x7 = 3,94793411255938 - error = 2,83264120049822
x8 = 3,92178434843862 - error = 0,666782306150268

La verdad es que desconozco la causa de la diferencia con tus resultados. ¿Estaré en un caso de un procesador defectuoso como el mítico error del Pentium? xD

Todo lo demás no hay problema. Por cierto sólo un pequeño detalle más... supuestamente cuando la solución es válida ¿se supera el reto? o ¿vuelven a repetirse sucesivas veces problemas distintos hasta que el servidor decida cuando parar y validar la prueba?

Un saludo.
Go to the top of the page
 
+Quote Post
Sinfocol.org
mensaje 19/08/2008 23:04
Publicado: #4
Campeón de las Temporadas del 2013 al 2017
Ícono de Grupo



Grupo: Administrador
Mensajes: 112
Registrado: 25/09/2005
Desde: Colombia
País: Colombia
Comunidad: Yashira.org
Rank: OFF



Si queres comprobar el tiempo que se demora el script en ejecutar el código, segui las instrucciones que te dí en el anterior post. Y de recomendación modifica la directiva "precision" que se encuentra en el archivo de configuración del php "php.ini", y ponle que mas o menos treinta (30) digitos significativos en números flotantes.
Compara también mis resultados con los tuyos:
3,92178434843862
3.92178000000000004376943252282
-----------------------
0,666782306150268
0.666782306150054626669998469879
Y nota que es mucha la diferencia en las raíces que estas mandando.
Y la respuesta a tu última pregunta: el servidor inmediatamente te devuelve la validación del reto al primer intento bueno que tengas.
Saludos
Go to the top of the page
 
+Quote Post
danielhb8705
mensaje 06/08/2013 22:23
Publicado: #5
3º Lugar de la Temporada 2016-2017
**



Grupo: Miembro
Mensajes: 20
Registrado: 19/09/2008
País: Cuba
Ranking : 1 º/ 1061.06
Avance : 76.69 %
All Stars
IngenioCienciasCriptografiaLenguajes Diseño WebSistemas OperativosEsteganografíaCrackingMisiones ImposiblesMixIngeniería InversaLenguajes de ProgramaciónSeguridad
Comunidad: Yashira.org
Rank: ON



A ver con este reto == que con Suma traicionera lo envio en tiempo y nada si alguien pudiera revisar mis resultados a ver si algo esta mal.
F(x)=+86*x^8-83*x^7+72*x^6-11*x^5+19*x^4-61*x^3-44*x^2-93*x^1+57
x0=6
tiempo: 0.84471416473388671875
Respuesta: 1.12788
Inlcuso puedo poner mas del proceso
i: valor error
0: 5.26240710936726951985065170447 14.0162643311991050865117358626
1: 4.61658110065275018030206410913 13.9892702983860583998421134311
2: 4.05098719457333888982475400553 13.9618783993460926495799867553
3: 3.55553545457355202330518295639 13.9346589657115629279360291548
4: 3.12141632063233087635012452665 13.9077613925360026314592687413
5: 2.74097493780015177833320194623 13.8797833422553384963293865439
6: 2.40763697521930231104647646134 13.8450258910186008165510429535
7: 2.11591248070532511604824321694 13.7871720675674076517225330463
8: 1.86152741039867430927756686287 13.6653948196320342844956030603
9: 1.64176453993240545337073399423 13.3857727537054085331647002022
10: 1.45611371969355896105469128088 12.7497473396457614569499128265
11: 1.3072155276874468654568772763 11.3904852606458195651839560014
12: 1.2013306574699478268541952275 8.81396554388256170398108224617
13: 1.14464375368481952044419358572 4.95236213036961991917905834271
14: 1.1289596925400966487273990424 1.38924899164775350612899273983
15: 1.12788012437329587811518649687 0.0957165698261267239299598941216

Please alguien que se compadezca.
Go to the top of the page
 
+Quote Post
g30rg3_x
mensaje 07/08/2013 22:03
Publicado: #6
SysAdmin
*****



Grupo: Admin Retirado
Mensajes: 396
Registrado: 29/01/2005
Desde: /mexico/yucatan/merida
País: México
Especialidad: Hechar la hueva
Comunidad: Yashira.org
Rank: OFF



Buenas,

CITA(danielhb8705 @ 06/08/2013 16:23) *
A ver con este reto == que con Suma traicionera lo envio en tiempo y nada si alguien pudiera revisar mis resultados a ver si algo esta mal.
F(x)=+86*x^8-83*x^7+72*x^6-11*x^5+19*x^4-61*x^3-44*x^2-93*x^1+57
x0=6
tiempo: 0.84471416473388671875
Respuesta: 1.12788
Inlcuso puedo poner mas del proceso
i: valor error
0: 5.26240710936726951985065170447 14.0162643311991050865117358626
1: 4.61658110065275018030206410913 13.9892702983860583998421134311
2: 4.05098719457333888982475400553 13.9618783993460926495799867553
3: 3.55553545457355202330518295639 13.9346589657115629279360291548
4: 3.12141632063233087635012452665 13.9077613925360026314592687413
5: 2.74097493780015177833320194623 13.8797833422553384963293865439
6: 2.40763697521930231104647646134 13.8450258910186008165510429535
7: 2.11591248070532511604824321694 13.7871720675674076517225330463
8: 1.86152741039867430927756686287 13.6653948196320342844956030603
9: 1.64176453993240545337073399423 13.3857727537054085331647002022
10: 1.45611371969355896105469128088 12.7497473396457614569499128265
11: 1.3072155276874468654568772763 11.3904852606458195651839560014
12: 1.2013306574699478268541952275 8.81396554388256170398108224617
13: 1.14464375368481952044419358572 4.95236213036961991917905834271
14: 1.1289596925400966487273990424 1.38924899164775350612899273983
15: 1.12788012437329587811518649687 0.0957165698261267239299598941216

Please alguien que se compadezca.


Pues tu funcion es correcta, nada mas es el fallo de siempre... el referer no se te/les olvide añadir la cabecera de referencia al enviar el POST con la respuesta.

Saludos
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 usuario(s) está(n) leyendo esta discusión (1 invitado(s) y 0 usuario(s) anónimo(s))
0 miembro(s):

 

RSS Versión Lo-Fi Fecha y Hora actual: 28/03/2024 23:11