Générateur de carré magique
Générez des carrés magiques de n'importe quelle taille impaire (3×3 à 11×11).
À propos de cet outil
Un carré magique est un grand classique des mathématiques récréatives : une grille carrée remplie de nombres distincts disposés de sorte que chaque ligne, colonne et diagonale donne la même somme, appelée la constante magique. Ce générateur construit instantanément un carré magique valide pour n'importe quel ordre impair, vous évitant les tâtonnements d'une construction à la main.
Il suffit de choisir une taille impaire de 3x3 jusqu'à 11x11 et de générer le carré ; chaque ligne, colonne et diagonale principale donnera exactement la même somme. C'est pratique pour enseigner les motifs numériques, concevoir des énigmes, explorer les mathématiques récréatives ou tester un exercice de programmation.
Astuce : les carrés magiques d'ordre impair se construisent avec la méthode siamoise, et la constante magique augmente régulièrement à mesure que la taille grandit. Tout s'exécute localement dans votre navigateur, si bien qu'aucune donnée ne quitte votre appareil.
Questions Fréquentes
Implémentation du Code
def generate_odd_magic_square(n):
"""Siamese (De la Loubère) method for odd n."""
grid = [[0] * n for _ in range(n)]
row, col = 0, n // 2
for num in range(1, n * n + 1):
grid[row][col] = num
next_row = (row - 1) % n
next_col = (col + 1) % n
if grid[next_row][next_col] != 0:
row = (row + 1) % n
else:
row, col = next_row, next_col
return grid
def magic_constant(n):
return n * (n * n + 1) // 2
for n in [3, 5]:
sq = generate_odd_magic_square(n)
print(f"\n{n}x{n} Magic Square (constant={magic_constant(n)}):")
for row in sq:
print(" ".join(f"{v:3}" for v in row))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.