{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Text" -1 207 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading \+ 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 } 1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple \+ Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Left Justified Maple Outpu t" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 } 1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 31 "CONSTRUCTION DE CARRES MAGIQUES" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 58 "Testons si un carre de taille n est pan diagonal d'ordre n\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with (LinearAlgebra):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "test:=proc(a)\n " }{MPLTEXT 1 0 25 "local M,k,i,j,e,S,n,l,A;\n" }{MPLTEXT 1 0 42 "M:=a ; n:=Dimension(a)[1]; S:=n*(n^2-1)/2;\n" }{MPLTEXT 1 0 29 "l:=seq(i,i= 0..n^2-1);l:=\{l\};\n" }{MPLTEXT 1 0 37 "e:=\{seq(seq(M[i,j],i=1..n),j =1..n)\};\n" }{MPLTEXT 1 0 78 "if e<>l then return print (\"Ce n'est p as un carre eulerien pandiagonal\"); fi;\n" }{MPLTEXT 1 0 21 "for i fr om 1 to n do\n" }{MPLTEXT 1 0 99 " if add(M[i,j],j=1..n)<>S then r eturn print (\"Ce n'est pas un carre eulerien pandiagonal\") fi;\n" } {MPLTEXT 1 0 100 " if add(M[j,i],j=1..n)<>S then return print (\"C e n'est pas un carre eulerien pandiagonal\"); fi;\n" }{MPLTEXT 1 0 118 " if add(M[j,(j+i) mod n +1],j=1..n)<>S then return print (\"C e n'est pas un carre eulerien pandiagonal\"); fi; \n" }{MPLTEXT 1 0 116 " if add(M[j,(-1-i-j) mod n +1],j=1..n)<>S then return print (\"Ce n'est pas un carre eulerien pandiagonal\"); fi;\n" }{MPLTEXT 1 0 8 "end do;\n" }{MPLTEXT 1 0 53 "print(M);print(\"est un carre euleri en pandiagonal\");\n" }{MPLTEXT 1 0 13 "return true;\n" }{MPLTEXT 1 0 9 "end proc:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "a:=Matrix([[0,24,18,12,6],[13,7,1,20,19],[2 1,15,14,8,2],[9,3,22,16,10],[17,11,5,4,23]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG-%'RTABLEG6$\")3Hd8-%'MATRIXG6#7'7'\"\"!\"#C\"#= \"#7\"\"'7'\"#8\"\"(\"\"\"\"#?\"#>7'\"#@\"#:\"#9\"\")\"\"#7'\"\"*\"\"$ \"#A\"#;\"#57'\"#<\"#6\"\"&\"\"%\"#B" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "test(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG 6$\")3Hd8-%'MATRIXG6#7'7'\"\"!\"#C\"#=\"#7\"\"'7'\"#8\"\"(\"\"\"\"#?\" #>7'\"#@\"#:\"#9\"\")\"\"#7'\"\"*\"\"$\"#A\"#;\"#57'\"#<\"#6\"\"&\"\"% \"#B" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QBest~un~carre~eulerien~pandia gonal6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "b:=Matrix([[0,2,18,12,6],[13,7,1,20,19],[ 21,15,14,8,2],[9,3,22,16,10],[17,11,5,4,23]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG-%'RTABLEG6$\")%GvJ\"-%'MATRIXG6#7'7'\"\"!\"\"#\" #=\"#7\"\"'7'\"#8\"\"(\"\"\"\"#?\"#>7'\"#@\"#:\"#9\"\")F/7'\"\"*\"\"$ \"#A\"#;\"#57'\"#<\"#6\"\"&\"\"%\"#B" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "test(b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QKCe~n'est ~pas~un~carre~eulerien~pandiagonal6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 22 "Algorithme \+ du cavalier" }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 77 "Un premier program me en codant \"case par case\" selon l'algorithme du cavalier" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "with(LinearAlgebra):\n" }{MPLTEXT 1 0 16 "caval1:=proc(n)\n" } {MPLTEXT 1 0 19 "local M,i,j,k,l,N;\n" }{MPLTEXT 1 0 33 "M:=Array(0..n -1,0..n-1,fill=-1);\n" }{MPLTEXT 1 0 14 "N:=Matrix(n);\n" }{MPLTEXT 1 0 11 "M[0,0]:=0;\n" }{MPLTEXT 1 0 11 "i:=0;j:=0;\n" }{MPLTEXT 1 0 25 " for k from 1 to n^2-1 do\n" }{MPLTEXT 1 0 93 " if M[irem(i+1,n),ir em(j+2,n)]=-1 then i:=i+1 mod n;j:=j+2 mod n;M[i,j]:=k;N[i+1,j+1]:=k\n " }{MPLTEXT 1 0 66 " else j:=j-1 mod n; M[i,j]:=k;fi;N[i+1,j+1]:=k ; \n" }{MPLTEXT 1 0 8 "end do;\n" }{MPLTEXT 1 0 9 "test(N );\n" }{MPLTEXT 1 0 10 "end proc:\n" }{MPLTEXT 1 0 21 " \+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "caval1(5);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")c*>b\"-%'MATRIXG6#7'7' \"\"!\"#C\"#=\"#7\"\"'7'\"#8\"\"(\"\"\"\"#?\"#>7'\"#@\"#:\"#9\"\")\"\" #7'\"\"*\"\"$\"#A\"#;\"#57'\"#<\"#6\"\"&\"\"%\"#B" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QBest~un~carre~eulerien~pandiagonal6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "caval1(7);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")CA_:- %'MATRIXG6#7)7)\"\"!\"#[\"#S\"#K\"#C\"#;\"\")7)\"#<\"\"*\"\"\"\"#U\"#T \"#L\"#D7)\"#M\"#E\"#=\"#5\"\"#\"#V\"#N7)\"#W\"#O\"#G\"#F\"#>\"#6\"\"$ 7)\"#7\"\"%\"#X\"#P\"#H\"#@\"#?7)\"#A\"#9\"#8\"\"&\"#Y\"#Q\"#I7)\"#R\" #J\"#B\"#:\"\"(\"\"'\"#Z" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QBest~un~c arre~eulerien~pandiagonal6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%true G" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 115 "Un deuxieme programme a p artir du calcul des coefficients d'un carre construit a l'aide de l'al gorithme du cavalier" }}{PARA 0 "" 0 "" {TEXT 207 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "caval2:=p roc(n)\n" }{MPLTEXT 1 0 21 "local M,N,r,q,i,j,k;\n" }{MPLTEXT 1 0 32 " M:=Array(0..n-1,0..n-1,fill=0);\n" }{MPLTEXT 1 0 14 "N:=Matrix(n);\n" }{MPLTEXT 1 0 25 "for k from 1 to n^2-1 do\n" }{MPLTEXT 1 0 17 " r :=k mod n;\n" }{MPLTEXT 1 0 19 " q:=iquo(k,n);\n" }{MPLTEXT 1 0 19 " i:=r-q mod n;\n" }{MPLTEXT 1 0 23 " j:=2*r-3*q mod n;\n" }{MPLTEXT 1 0 31 " M[i,j]:=k; N[i+1,j+1]:=k;\n" }{MPLTEXT 1 0 4 "o d;\n" }{MPLTEXT 1 0 9 "test(N);\n" }{MPLTEXT 1 0 9 "end proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "caval2(5);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")%[Cb\"-%'MATRIXG6#7'7'\"\"!\"#C\"#=\" #7\"\"'7'\"#8\"\"(\"\"\"\"#?\"#>7'\"#@\"#:\"#9\"\")\"\"#7'\"\"*\"\"$\" #A\"#;\"#57'\"#<\"#6\"\"&\"\"%\"#B" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# QBest~un~carre~eulerien~pandiagonal6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "caval2(7); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")C*Gb\"-%'MATRIXG6#7 )7)\"\"!\"#[\"#S\"#K\"#C\"#;\"\")7)\"#<\"\"*\"\"\"\"#U\"#T\"#L\"#D7)\" #M\"#E\"#=\"#5\"\"#\"#V\"#N7)\"#W\"#O\"#G\"#F\"#>\"#6\"\"$7)\"#7\"\"% \"#X\"#P\"#H\"#@\"#?7)\"#A\"#9\"#8\"\"&\"#Y\"#Q\"#I7)\"#R\"#J\"#B\"#: \"\"(\"\"'\"#Z" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QBest~un~carre~euler ien~pandiagonal6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 40 " Generalisation de la methode du cavalier" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "with(combinat,choose) :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "const:=proc(L,k,n)\n" }{MPLTEXT 1 0 19 "local M,N,r,q,i,j;\n" }{MPLTEXT 1 0 32 "M:=Array(0.. n-1,0..n-1,fill=0);\n" }{MPLTEXT 1 0 14 "N:=Matrix(n);\n" }{MPLTEXT 1 0 23 "for i from 0 to n-1 do\n" }{MPLTEXT 1 0 37 " for j from 0 to n-1 do \n" }{MPLTEXT 1 0 59 " M[i,j]:=L[(k*i-j) mod \+ n +1]; N[i+1,j+1]:=M[i,j];\n" }{MPLTEXT 1 0 9 " od;\n" }{MPLTEXT 1 0 4 "od;\n" }{MPLTEXT 1 0 3 "N;\n" }{MPLTEXT 1 0 9 "end proc:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "const([0,1,2,3,4],2,5);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABL EG6$\")%=Jb\"-%'MATRIXG6#7'7'\"\"!\"\"%\"\"$\"\"#\"\"\"7'F/F0F,F-F.7'F -F.F/F0F,7'F0F,F-F.F/7'F.F/F0F,F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "prod:=proc(M,N)\n" }{MPLTEXT 1 0 15 "local n,i,j,P;\n " }{MPLTEXT 1 0 20 "n:=Dimension(M)[1];\n" }{MPLTEXT 1 0 14 "P:=Matrix (n);\n" }{MPLTEXT 1 0 21 "for i from 1 to n do\n" }{MPLTEXT 1 0 26 " \+ for j from 1 to n do\n" }{MPLTEXT 1 0 35 " P[i,j]:=n*M[i,j ]+N[i,j];\n" }{MPLTEXT 1 0 9 " od;\n" }{MPLTEXT 1 0 4 "od;\n" } {MPLTEXT 1 0 10 "return P;\n" }{MPLTEXT 1 0 9 "end proc;" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#>%%prodGf*6$%\"MG%\"NG6&%\"nG%\"iG%\"jG%\"PG6\"F .C&>8$&-_%.LinearAlgebraG%*DimensionG6#9$6#\"\"\">8'-%'MatrixG6#F1?(8% F:F:F1%%trueG?(8&F:F:F1FB>&F<6$FAFD,&*&F1F:&F8FGF:F:&9%FGF:OF " 0 "" {MPLTEXT 1 0 196 "genint:=proc(n)\nlocal L ,k,i;\nL:=NULL;\nfor i from 2 to n-2 do\n if igcd(i-1,n)=1 and igc d(i,n)=1 and igcd(i+1,n)=1 then\n k:=k+1;\n L:=L,i;\n \+ fi;\nod;\nL:=[L];\nreturn L;\nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'genintGf*6#%\"nG6%%\"LG%\"kG%\"iG6\"F,C&>8$%%NULLG?( 8&\"\"#\"\"\",&9$F4F3!\"\"%%trueG@$3/-%%igcdG6$,&F2F4F4F7F6F4/-F=6$,&F 2F4F4F4F6F4C$>8%,&FFF4F4F4>F/6$F/F2>F/7#F/OF/F,F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "carre:=proc(n)\n" }{MPLTEXT 1 0 30 "local i,k,L,p1,p2,r,j,M,tc,c;\n" }{MPLTEXT 1 0 18 "p1:=0;p2:=0;r:=0;\n" } {MPLTEXT 1 0 42 "L:=genint(n);\nc:=choose(L,2);\ntc:=nops(c);" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 104 "if nops(L)<=1 then return print f(\"cette construction ne permet pas de produire un carre de taille %n \");\n" }{MPLTEXT 1 0 6 "else \n" }{MPLTEXT 1 0 27 " for i from 1 \+ to tc do " }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 46 " if igcd((c [i][2]-c[i][1]),n)=1 then\n" }{MPLTEXT 1 0 28 " p1:=c[i] [1];\n" }{MPLTEXT 1 0 31 " p2:=c[i][2];fi;\n" }{MPLTEXT 1 0 9 " od;\n" }{MPLTEXT 1 0 4 "fi;\n" }{MPLTEXT 1 0 98 "if p1=0 t hen return printf(\"cette construction ne permet pas de produire un ca rre de taille %n\");\n" }{MPLTEXT 1 0 5 "else\n" }{MPLTEXT 1 0 12 " \+ return " }{MPLTEXT 1 0 68 "prod(const([seq(k,k=0..n-1)],p1,n),const( [seq(k,k=0..n-1)],p2,n)); \n" }{MPLTEXT 1 0 5 "fi; \n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "carre(5);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")wA`:-%'MATRIXG6#7'7'\" \"!\"#C\"#=\"#7\"\"'7'\"#8\"\"(\"\"\"\"#?\"#>7'\"#@\"#:\"#9\"\")\"\"#7 '\"\"*\"\"$\"#A\"#;\"#57'\"#<\"#6\"\"&\"\"%\"#B" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 15 "test(carre(7));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6$\")7X`:-%'MATRIXG6#7)7)\"\"!\"#[\"#S\"#K\"#C\"#;\"\" )7)\"#L\"#D\"#<\"\"*\"\"\"\"#U\"#T7)\"#5\"\"#\"#V\"#N\"#M\"#E\"#=7)\"# O\"#G\"#F\"#>\"#6\"\"$\"#W7)\"#?\"#7\"\"%\"#X\"#P\"#H\"#@7)\"#Y\"#Q\"# I\"#A\"#9\"#8\"\"&7)\"#B\"#:\"\"(\"\"'\"#Z\"#R\"#J" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#QBest~un~carre~eulerien~pandiagonal6\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}}{MARK "1 3 7 0 19" 9 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 } {PAGENUMBERS 0 1 2 33 1 1 }{RTABLE_HANDLES 13572908 13175284 15519956 15522224 15524484 15528924 15531184 15532276 15534512 }{RTABLE M7R0 I5RTABLE_SAVE/13572908X,%)anythingG6"6"[gl!"%!!!#:"&"&""!"#8"#@""*"#<"#C""("#:" "$"#6"#=""""#9"#A""&"#7"#?"")"#;""%""'"#>""#"#5"#B6" } {RTABLE M7R0 I5RTABLE_SAVE/13175284X,%)anythingG6"6"[gl!"%!!!#:"&"&""!"#8"#@""*"#<""#""("#:" "$"#6"#=""""#9"#A""&"#7"#?"")"#;""%""'"#>F,"#5"#B6" } {RTABLE M7R0 I5RTABLE_SAVE/15519956X,%)anythingG6"6"[gl!"%!!!#:"&"&""!"#8"#@""*"#<"#C""("#:" "$"#6"#=""""#9"#A""&"#7"#?"")"#;""%""'"#>""#"#5"#B6" } {RTABLE M7R0 I5RTABLE_SAVE/15522224X,%)anythingG6"6"[gl!"%!!!#R"("(""!"#<"#M"#W"#7"#A"#R"#[" "*"#E"#O""%"#9"#J"#S""""#="#G"#X"#8"#B"#K"#U"#5"#F"#P""&"#:"#C"#T""#"#>"#H"#Y"" ("#;"#L"#V"#6"#@"#Q""'"")"#D"#N""$"#?"#I"#Z6" } {RTABLE M7R0 I5RTABLE_SAVE/15524484X,%)anythingG6"6"[gl!"%!!!#:"&"&""!"#8"#@""*"#<"#C""("#:" "$"#6"#=""""#9"#A""&"#7"#?"")"#;""%""'"#>""#"#5"#B6" } {RTABLE M7R0 I5RTABLE_SAVE/15528924X,%)anythingG6"6"[gl!"%!!!#R"("(""!"#<"#M"#W"#7"#A"#R"#[" "*"#E"#O""%"#9"#J"#S""""#="#G"#X"#8"#B"#K"#U"#5"#F"#P""&"#:"#C"#T""#"#>"#H"#Y"" ("#;"#L"#V"#6"#@"#Q""'"")"#D"#N""$"#?"#I"#Z6" } {RTABLE M7R0 I5RTABLE_SAVE/15531184X,%)anythingG6"6"[gl!"%!!!#:"&"&""!""#""%"""""$F)F*F+F'F( F+F'F(F)F*F(F)F*F+F'F*F+F'F(F)6" } {RTABLE M7R0 I5RTABLE_SAVE/15532276X,%)anythingG6"6"[gl!"%!!!#:"&"&""!"#8"#@""*"#<"#C""("#:" "$"#6"#=""""#9"#A""&"#7"#?"")"#;""%""'"#>""#"#5"#B6" } {RTABLE M7R0 I5RTABLE_SAVE/15534512X,%)anythingG6"6"[gl!"%!!!#R"("(""!"#L"#5"#O"#?"#Y"#B"#[" #D""#"#G"#7"#Q"#:"#S"#<"#V"#F""%"#I""("#K""*"#N"#>"#X"#A""'"#C""""#M"#6"#P"#9"# Z"#;"#U"#E""$"#H"#8"#R"")"#T"#="#W"#@""&"#J6" }