Aller au contenu
🛠️ToolsShed

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.