Bonsour(=AE)
en r=E9ponse =E0 une de tes pr=E9c=E9dentes interventions :
Pose le code ci-dessous dans une feuille=20
puis en A1=20
mets une valeur comprise entre 1 et 9
puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge()
ordre =3D 1 + 2 * [A1].Value
[B2].Resize(20, 20).Clear
MsgBox "carr=E9 magique d'ordre " & ordre
Application.ScreenUpdating =3D False
debut =3D Application.WorksheetFunction.Ceiling(ordre/2, 1)
Set Tablo =3D Range("B2")
Tablo.Resize(ordre, ordre).Select
Selection.Interior.Color =3D vbYellow
Cells(2 + debut, 1 + debut).Select
Selection.Value =3D 1
For i =3D 2 To ordre ^ 2
x =3D Selection.Row
y =3D Selection.Column
x =3D IIf(x + 1 > (ordre + 1), 2, x + 1)
y =3D IIf(y + 1 > (ordre + 1), 2, y + 1)
If Cells(x, y) > 0 Then x =3D x - 1: y =3D y + 1
If x < 2 Then x =3D ordre + 1
If (y > (ordre + 1)) Then y =3D 2
Cells(x, y).Select
Selection =3D i
Next
Application.ScreenUpdating =3D True
End Sub
Question :
cet algorithme bas=E9 sur l'observation... ;-)))
g=E9n=E9re des carr=E9s magiques d'ordre impair de 3 =E0 19
comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes bas=E9s sur des=20
formules math=E9matiques,=20
Mais comme d=E9ja signal=E9 je n'ai pas connaissance=20
d'algorithmes math=E9matiques ou empiriques concernant les=20
carr=E9 magiques d'ordre pair !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
garnote
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!
Super ! Vais tenter quelque chose à mon tour.
Je sais au moins une chose sur les carrés magiques
d'ordre n impair :
Les sommes sont égales à n * ( n^2 + 1 ) / 2
Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" <Gee-dee-@discussions.microsoft.com> a écrit dans le message de
news: 216e601c45ac9$69813be0$a101280a@phx.gbl...
Bonsour(®)
en réponse à une de tes précédentes interventions :
Pose le code ci-dessous dans une feuille
puis en A1
mets une valeur comprise entre 1 et 9
puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge()
ordre = 1 + 2 * [A1].Value
[B2].Resize(20, 20).Clear
MsgBox "carré magique d'ordre " & ordre
Application.ScreenUpdating = False
debut = Application.WorksheetFunction.Ceiling(ordre/2, 1)
Set Tablo = Range("B2")
Tablo.Resize(ordre, ordre).Select
Selection.Interior.Color = vbYellow
Cells(2 + debut, 1 + debut).Select
Selection.Value = 1
For i = 2 To ordre ^ 2
x = Selection.Row
y = Selection.Column
x = IIf(x + 1 > (ordre + 1), 2, x + 1)
y = IIf(y + 1 > (ordre + 1), 2, y + 1)
If Cells(x, y) > 0 Then x = x - 1: y = y + 1
If x < 2 Then x = ordre + 1
If (y > (ordre + 1)) Then y = 2
Cells(x, y).Select
Selection = i
Next
Application.ScreenUpdating = True
End Sub
Question :
cet algorithme basé sur l'observation... ;-)))
génére des carrés magiques d'ordre impair de 3 à 19
comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des
formules mathématiques,
Mais comme déja signalé je n'ai pas connaissance
d'algorithmes mathématiques ou empiriques concernant les
carré magiques d'ordre pair !!!
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!
GD
Bonsour(®) désolé Serge , rectification aprés vérification : l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair. mais ce ne sont pas de réels carrés magiques :-((( car les sommes selon les diagonales ne sont pas egales aux sommes lignes ou colonnes
j'y ai cru un instant !!! @+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!
Bonsour(®) désolé Serge ,
rectification aprés vérification :
l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair.
mais ce ne sont pas de réels carrés magiques :-(((
car les sommes selon les diagonales ne sont pas egales aux sommes lignes ou
colonnes
j'y ai cru un instant !!!
@+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour.
Je sais au moins une chose sur les carrés magiques
d'ordre n impair :
Les sommes sont égales à n * ( n^2 + 1 ) / 2
Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" <Gee-dee-@discussions.microsoft.com> a écrit dans le
message de news: 216e601c45ac9$69813be0$a101280a@phx.gbl...
Bonsour(®)
en réponse à une de tes précédentes interventions :
Pose le code ci-dessous dans une feuille
puis en A1
mets une valeur comprise entre 1 et 9
puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge()
ordre = 1 + 2 * [A1].Value
[B2].Resize(20, 20).Clear
MsgBox "carré magique d'ordre " & ordre
Application.ScreenUpdating = False
debut = Application.WorksheetFunction.Ceiling(ordre/2, 1)
Set Tablo = Range("B2")
Tablo.Resize(ordre, ordre).Select
Selection.Interior.Color = vbYellow
Cells(2 + debut, 1 + debut).Select
Selection.Value = 1
For i = 2 To ordre ^ 2
x = Selection.Row
y = Selection.Column
x = IIf(x + 1 > (ordre + 1), 2, x + 1)
y = IIf(y + 1 > (ordre + 1), 2, y + 1)
If Cells(x, y) > 0 Then x = x - 1: y = y + 1
If x < 2 Then x = ordre + 1
If (y > (ordre + 1)) Then y = 2
Cells(x, y).Select
Selection = i
Next
Application.ScreenUpdating = True
End Sub
Question :
cet algorithme basé sur l'observation... ;-)))
génére des carrés magiques d'ordre impair de 3 à 19
comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des
formules mathématiques,
Mais comme déja signalé je n'ai pas connaissance
d'algorithmes mathématiques ou empiriques concernant les
carré magiques d'ordre pair !!!
Bonsour(®) désolé Serge , rectification aprés vérification : l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair. mais ce ne sont pas de réels carrés magiques :-((( car les sommes selon les diagonales ne sont pas egales aux sommes lignes ou colonnes
j'y ai cru un instant !!! @+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!
garnote
Salut GD,
Je crois que j'ai et il est temps de quitter cet infâme ordi !
Sub Carré_Magique_Impair() pr = 1 n = Application.InputBox(Prompt:= _ "Entrez un nombre entier impair.", Type:=1) i = (n - 1) / 2 j = (n + 1) / 2 Sheets.Add Cells(i, j) = 1 Do Until pr = n ^ 2 i = i - 1 j = j + 1 If i < 1 Then i = n If j < 1 Then j = n If i > n Then i = 1 If j > n Then j = 1 If Cells(i, j) <> "" Then i = i - 1 j = j - 1 If i < 1 Then i = n If j < 1 Then j = n If i > n Then i = 1 If j > n Then j = 1 End If pr = pr + 1 Cells(i, j) = pr Loop MsgBox "Somme : " & n * (n ^ 2 + 1) / 2 End Sub
Jean Aymard :-)))
"GD" a écrit dans le message de news:
Bonsour(®) désolé Serge , rectification aprés vérification : l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair. mais ce ne sont pas de réels carrés magiques :-((( car les sommes selon les diagonales ne sont pas egales aux sommes lignes ou
colonnes
j'y ai cru un instant !!! @+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!
Salut GD,
Je crois que j'ai et il est temps de quitter
cet infâme ordi !
Sub Carré_Magique_Impair()
pr = 1
n = Application.InputBox(Prompt:= _
"Entrez un nombre entier impair.", Type:=1)
i = (n - 1) / 2
j = (n + 1) / 2
Sheets.Add
Cells(i, j) = 1
Do Until pr = n ^ 2
i = i - 1
j = j + 1
If i < 1 Then i = n
If j < 1 Then j = n
If i > n Then i = 1
If j > n Then j = 1
If Cells(i, j) <> "" Then
i = i - 1
j = j - 1
If i < 1 Then i = n
If j < 1 Then j = n
If i > n Then i = 1
If j > n Then j = 1
End If
pr = pr + 1
Cells(i, j) = pr
Loop
MsgBox "Somme : " & n * (n ^ 2 + 1) / 2
End Sub
Jean Aymard :-)))
"GD" <nomail@nomail.net> a écrit dans le message de news:
e6egibvWEHA.2176@TK2MSFTNGP11.phx.gbl...
Bonsour(®) désolé Serge ,
rectification aprés vérification :
l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair.
mais ce ne sont pas de réels carrés magiques :-(((
car les sommes selon les diagonales ne sont pas egales aux sommes lignes
ou
colonnes
j'y ai cru un instant !!!
@+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour.
Je sais au moins une chose sur les carrés magiques
d'ordre n impair :
Les sommes sont égales à n * ( n^2 + 1 ) / 2
Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" <Gee-dee-@discussions.microsoft.com> a écrit dans le
message de news: 216e601c45ac9$69813be0$a101280a@phx.gbl...
Bonsour(®)
en réponse à une de tes précédentes interventions :
Pose le code ci-dessous dans une feuille
puis en A1
mets une valeur comprise entre 1 et 9
puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge()
ordre = 1 + 2 * [A1].Value
[B2].Resize(20, 20).Clear
MsgBox "carré magique d'ordre " & ordre
Application.ScreenUpdating = False
debut = Application.WorksheetFunction.Ceiling(ordre/2, 1)
Set Tablo = Range("B2")
Tablo.Resize(ordre, ordre).Select
Selection.Interior.Color = vbYellow
Cells(2 + debut, 1 + debut).Select
Selection.Value = 1
For i = 2 To ordre ^ 2
x = Selection.Row
y = Selection.Column
x = IIf(x + 1 > (ordre + 1), 2, x + 1)
y = IIf(y + 1 > (ordre + 1), 2, y + 1)
If Cells(x, y) > 0 Then x = x - 1: y = y + 1
If x < 2 Then x = ordre + 1
If (y > (ordre + 1)) Then y = 2
Cells(x, y).Select
Selection = i
Next
Application.ScreenUpdating = True
End Sub
Question :
cet algorithme basé sur l'observation... ;-)))
génére des carrés magiques d'ordre impair de 3 à 19
comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des
formules mathématiques,
Mais comme déja signalé je n'ai pas connaissance
d'algorithmes mathématiques ou empiriques concernant les
carré magiques d'ordre pair !!!
Je crois que j'ai et il est temps de quitter cet infâme ordi !
Sub Carré_Magique_Impair() pr = 1 n = Application.InputBox(Prompt:= _ "Entrez un nombre entier impair.", Type:=1) i = (n - 1) / 2 j = (n + 1) / 2 Sheets.Add Cells(i, j) = 1 Do Until pr = n ^ 2 i = i - 1 j = j + 1 If i < 1 Then i = n If j < 1 Then j = n If i > n Then i = 1 If j > n Then j = 1 If Cells(i, j) <> "" Then i = i - 1 j = j - 1 If i < 1 Then i = n If j < 1 Then j = n If i > n Then i = 1 If j > n Then j = 1 End If pr = pr + 1 Cells(i, j) = pr Loop MsgBox "Somme : " & n * (n ^ 2 + 1) / 2 End Sub
Jean Aymard :-)))
"GD" a écrit dans le message de news:
Bonsour(®) désolé Serge , rectification aprés vérification : l'algorithme fonctionne bien pour n'importe quel carré d'ordre impair. mais ce ne sont pas de réels carrés magiques :-((( car les sommes selon les diagonales ne sont pas egales aux sommes lignes ou
colonnes
j'y ai cru un instant !!! @+
garnote wrote:
Super ! Vais tenter quelque chose à mon tour. Je sais au moins une chose sur les carrés magiques d'ordre n impair : Les sommes sont égales à n * ( n^2 + 1 ) / 2 Quant aux carrés magiques d'ordre pair, fouille-moé :-)))
Serge
"Modeste®" a écrit dans le message de news: 216e601c45ac9$69813be0$ Bonsour(®) en réponse à une de tes précédentes interventions : Pose le code ci-dessous dans une feuille puis en A1 mets une valeur comprise entre 1 et 9 puis active la macro .....
voir plus bas question subsidiaire :
Sub MagikSerge() ordre = 1 + 2 * [A1].Value [B2].Resize(20, 20).Clear MsgBox "carré magique d'ordre " & ordre Application.ScreenUpdating = False debut = Application.WorksheetFunction.Ceiling(ordre/2, 1) Set Tablo = Range("B2") Tablo.Resize(ordre, ordre).Select Selection.Interior.Color = vbYellow Cells(2 + debut, 1 + debut).Select Selection.Value = 1 For i = 2 To ordre ^ 2 x = Selection.Row y = Selection.Column x = IIf(x + 1 > (ordre + 1), 2, x + 1) y = IIf(y + 1 > (ordre + 1), 2, y + 1) If Cells(x, y) > 0 Then x = x - 1: y = y + 1 If x < 2 Then x = ordre + 1 If (y > (ordre + 1)) Then y = 2 Cells(x, y).Select Selection = i Next Application.ScreenUpdating = True End Sub
Question : cet algorithme basé sur l'observation... ;-))) génére des carrés magiques d'ordre impair de 3 à 19 comment ce fait-il que cela ne fonctionne pas au-dela ???
il existe certainement d'autres algorithmes basés sur des formules mathématiques, Mais comme déja signalé je n'ai pas connaissance d'algorithmes mathématiques ou empiriques concernant les carré magiques d'ordre pair !!!