Mie May 03, 2006 2:29 pm
|
 |
dacons
Perlero Nuevo

|
Registrado: 27 Feb 2006
Mensajes: 48
|
|
| Validar polinomio |
|
|
Muy buenas a todos, estoy intentando validar un polinomio que puede tener dos estructuras:
| Cita: | | y=x3+25x+3 ó y=6x3-6x2+5x |
lo he intentado asi:
| Código: |
if($pol=~/^[y]{1}[=]{1}[x]{1}[2]{1}[+]{1}[0-9]{1, }[x]{1}[+]{1}[0-9]{1, }$/ ||
$pol=~/^[y]{1}[=]{1}[0-9]{1, }[x]{1}[3]{1}[-]{1}[0-9]{1, }[x]{1}[2]{1}[0-9]{1, }[x]{1}$/){
print "Polinomio valido";
}else{
print "Polinomio no valido";
} |
pero al hacer la prueba con un polinomio válido no entra ¿por qué? |
|
|
|

Mie May 03, 2006 3:32 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
|
|
|
|
|
| Código: |
if( $pol=~/^[y]{1}[=]{1}[x]{1}[2]{1}[+]{1}[0-9]{1, }[x]{1}[+]{1}[0-9]{1, }$/ ||
$pol=~/^[y]{1}[=]{1}[0-9]{1, }[x]{1}[3]{1}[-]{1}[0-9]{1, }[x]{1}[2]{1}[0-9]{1, }[x]{1}$/){
print "Polinomio valido";
}else{
print "Polinomio no valido";
} |
| Código: |
if( $pol=~/^y=x2\+[0-9]{1, }x\+[0-9]{1, }$/ ||
$pol=~/^y=[0-9]{1, }x3-[0-9]{1, }x2[0-9]{1, }x$/){
print "Polinomio valido";
}else{
print "Polinomio no valido";
} |
| Código: |
if( $pol=~/^y=x2\+\d+x\+\d+$/ ||
$pol=~/^y=\d+x3-\d+x2\d+x$/){
print "Polinomio valido";
}else{
print "Polinomio no valido";
} |
Los dos polinomios de muestra tienen componente x3, por lo que la primera parte del if no coincidirá.
En cuanto a la segunda parte, falta un signo '+' entre el x2 y el x.
Este patrón reconoce los dos polinomios:
| Código: |
@polys = qw( y=x3+x+3 y=6x3-6x2+5x );
foreach $pol ( @polys ) {
if ( $pol =~ /^y=\d*x3([-+]\d+x2)?\+\d+x(\+\d+)?$/ ) {
print "Polinomio válido";
} else {
print "Polinomio no válido";
}
} |
|
|

Mie May 03, 2006 4:07 pm
|
 |
dacons
Perlero Nuevo

|
Registrado: 27 Feb 2006
Mensajes: 48
|
|
|
|
|
Lo siento era x2 y no x3 como puse arriba.
El último código es más eficiente pero el penúltimo es más comprensible para mis pequeños conocimientos.
Muchisimas gracias |
|
Powered by phpBB © 2001, 2005 phpBB Group
|