#include #define maxtaille 100 double P[maxtaille][maxtaille]; int M[maxtaille][maxtaille]; int taille; FILE *entree; void lire()/*lire la matrice P de probabilités de transition et construire M la matrice booléenne de l'existence de chemins de longueur 1 */ { int i,j; double x; if (taille>maxtaille) printf("Taille %i trop grande; maximum est %i\n",taille,maxtaille); else for (i=0;i0; } } } void printbool(A) int A[maxtaille][maxtaille]; { int i,j; for (i=0;i=1) */ int A[maxtaille][maxtaille], n; { int temp[maxtaille][maxtaille]; if (n==1) return; copiebool(A,temp); puissancebool(temp,n/2); multbool(temp,temp); if (n % 2) /*n impair*/ multbool(A,temp); else copiebool(temp,A); } main(argc, argv) int argc; char *argv[]; { if (argc<=1) { printf("usage: squelette fichier\n"); return; } entree=fopen(argv[1],"r"); if (!entree) {printf("cannot open file %s\n",argv[1]);return;} fscanf(entree,"%i",&taille); lire(); printbool(M); puissancebool(M,5); printbool(M); }