ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 04 Déc 2003 14:45 Sujet du message: Re: prob |
|
|
Procédure de conversion des coefficients 0,1 d'une matrice carrée A d'ordre n en false,true :
Code: |
> with(linalg):
> convertir_01_bool:=proc(A::matrix,n::posint)
> local B,i,j;
> B:=matrix(n,n);
> for i to n do
> for j to n do
> if A[i,j]=0 then B[i,j]:=false end if;
> if A[i,j]=1 then B[i,j]:=true end if;
> end do
> end do;
> evalm(B)
> end proc:
> A:=matrix([[1,0,0],[0,0,1],[0,1,0]]);
[1 0 0]
[ ]
A := [0 0 1]
[ ]
[0 1 0]
> B:=convertir_01_bool(A,3);
[true false false]
[ ]
B := [false false true ]
[ ]
[false true false]
|
Procédure de conversion des coefficients false,true d'une matrice carrée A d'ordre n en 0,1 :
Code: |
> convertir_bool_01:=proc(A::matrix,n::posint)
> local B,i,j;
> B:=matrix(n,n);
> for i to n do
> for j to n do
> if A[i,j]=false then B[i,j]:=0 end if;
> if A[i,j]=true then B[i,j]:=1 end if;
> end do
> end do;
> evalm(B)
> end proc:
> C:=convertir_bool_01(B,3);
[1 0 0]
[ ]
C := [0 0 1]
[ ]
[0 1 0]
|
Procédure matrice de fermeture
Code: |
> matrice_fermeture:=proc(T::matrix,n::posint)
> local A,i,j,k;
> A:=convertir_01_bool(T,n);
> for k to n do
> for i to n do
> if A[i,k]=true then
> for j to n do
> A[i,j]:=A[i,j] or (A[i,k] and A[k,j])
> end do
> end if
> end do
> end do;
> convertir_bool_01(A,n)
> end proc:
> matrice_fermeture(A,3);
[1 0 0]
[ ]
[0 1 1]
[ ]
[0 1 1]
|
|
|