Gerador de quadrado mágico
Monte um quadrado mágico de ordem ímpar em que cada linha, coluna e diagonal principal tem a mesma soma: o de 3×3 soma 15 e o de 5×5, 65. Escolha qualquer tamanho ímpar de 3 a 99 e receba a grade completa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Ordem
- 3
- Constante mágica
- 15
- Células
- 9
Um quadrado mágico de ordem ímpar n é uma grade n por n que contém cada inteiro de 1 até n ao quadrado exatamente uma vez, de modo que cada linha, cada coluna e ambas as diagonais principais somam a mesma constante mágica: n vezes (n ao quadrado mais um) dividido por dois. Este gerador monta essa grade com o método siamês, também chamado método de de la Loubère. Ele coloca o 1 no meio da linha de cima e depois anda uma célula para cima e uma para a direita, contornando as bordas e descendo uma célula quando a seguinte já está preenchida. A única entrada obrigatória é a ordem ímpar, que precisa ser um inteiro maior ou igual a 3.
Como o método siamês preenche um quadrado de ordem ímpar
O método siamês, registrado por Simon de la Loubère depois de uma estadia no Sião no século XVII, é a prova construtiva padrão de que existe um quadrado mágico para toda ordem ímpar. Comece com um tabuleiro vazio n por n e escreva o inteiro 1 na célula central da primeira linha. De qualquer célula que já contenha k, a candidata para k mais um fica uma linha acima e uma coluna à direita.
Se esse passo sai do tabuleiro, faça o contorno: sair pela linha de cima reentra pela de baixo da mesma coluna, e sair pela última coluna reentra pela primeira da mesma linha. Se a célula contornada já está ocupada — o que acontece depois de cada volta completa de n passos — não dê o passo diagonal; em vez disso, escreva o próximo inteiro na célula imediatamente abaixo da atual e continue dali.
Como n é ímpar, essa regra de colisão nunca briga com o contorno, e o passeio visita cada célula exatamente uma vez antes de colocar n ao quadrado. A grade pronta é mágica: cada linha, cada coluna e ambas as diagonais longas somam a constante mágica n vezes (n ao quadrado mais um) sobre dois. Para a ordem 3 essa constante é 15 e o quadrado normal único (salvo rotação e reflexão) é oito, um, seis na primeira linha, três, cinco, sete na segunda, e quatro, nove, dois na terceira.
Para a ordem 5 a constante é 65 e a primeira linha é dezessete, vinte e quatro, um, oito, quinze.
Contrato de entrada, forma da resposta e o que é rejeitado
Os apelidos n e size são aceitos para que formulários e strings de consulta reutilizem um contrato. O domínio são os inteiros ímpares de 3 até 99 inclusive. A ordem 1 é ímpar, mas não é o quadrado mágico de sala de aula no sentido usual de 1 até n ao quadrado que as pessoas buscam, então é rejeitada com a mesma mensagem de uma ordem par: order precisa ser um inteiro ímpar maior ou igual a 3.
Valores pares como 4 ou 8 falham pelo mesmo motivo — o passo siamês para cima e à direita não é uma construção completa para n par, e esta capacidade não troca em silêncio para um algoritmo de Strachey ou LUX. Valores acima de 99 falham porque o limite declarado é 99. Chaves de saída opcionais são omitidas em vez de enviadas como null.
Validação com falha não é cobrada.
Onde um gerador de quadrado mágico de ordem ímpar se paga
Salas de aula e plataformas de tutoria usam um gerador de quadrado mágico para que alunos verifiquem um 3×3 ou 5×5 que acabaram de montar à mão, sem inverter um erro de contorno nas últimas células. Sites de quebra-cabeça e fábricas de folhas de exercício precisam de um oráculo determinístico que sempre emita a mesma grade siamesa para um n dado, para que gabaritos fiquem estáveis entre reimpressões e idiomas. Entrada inválida não consome saldo.
Se você precisa de quadrados de ordem par, rotações da grade siamesa ou um verificador de um tabuleiro já preenchido, essa é outra intenção de busca e outra capacidade; esta existe para construir o quadrado siamês de ordem ímpar que as pessoas procuram como gerador de quadrado mágico.
Casos de uso
Gabaritos de aula e folhas de exercício
Gere o quadrado siamês canônico 3×3 ou 5×5 para que alunos verifiquem cada linha, coluna e diagonal contra a constante mágica impressa.
Tabuleiros de jogo equilibrados
Coloque fichas ou pontuações a partir de um quadrado mágico para que cada linha, coluna e diagonal longa de um tabuleiro ímpar carregue o mesmo total.
Perguntas frequentes
Por que a ordem precisa ser um inteiro ímpar maior ou igual a 3?
O passeio siamês para cima e à direita é uma construção completa só para n ímpar.
Como é o quadrado siamês 3×3?
A grade canônica é [[8,1,6],[3,5,7],[4,9,2]]. Cada linha, cada coluna e ambas as diagonais principais somam a constante mágica 15.
O gerador escolhe uma rotação aleatória a cada vez?
Não. O passeio é fixo: o 1 sempre começa no meio da linha de cima e anda para cima e à direita. A mesma ordem sempre devolve o mesmo arranjo bidimensional.
Como se calcula a constante mágica de um quadrado?
Multiplique n por n ao quadrado mais um e divida por dois. Para um quadrado 3×3 o resultado é 15, e para um 5×5 é 65: cada linha, cada coluna e as duas diagonais principais somam esse número.
Como o método siamês posiciona os números?
Ele escreve o 1 no meio da linha de cima e, para cada número seguinte, sobe uma casa e anda uma para a direita, dando a volta pelas bordas. Se essa casa já estiver ocupada, desce para a casa logo abaixo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/math/magic-square \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"order":3}'const res = await fetch("https://api.kit.forhosting.com/math/magic-square", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"order": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/magic-square",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"order": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/magic-square", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"order":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"order":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/magic-square", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"order": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.magic_square",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_order | 99 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Ordens pares, a ordem trivial 1, frações e valores acima do máximo publicado são rejeitados com invalid_input.
Como o método siamês preenche um quadrado de ordem ímpar
Este endpoint sempre emite essa orientação canônica siamesa; ele não escolhe uma associação aleatória nem uma construção de ordem par de Dürer.
Contrato de entrada, forma da resposta e o que é rejeitado
Envie por POST um corpo JSON com um único campo obrigatório, order, o inteiro ímpar n do quadrado. O valor pode chegar como inteiro JSON ou como string decimal inteira; strings vazias, campos ausentes, frações, notação científica e tipos não numéricos falham com invalid_input apontando order. Em caso de sucesso, o corpo ecoa order, devolve square como um array de n linhas com n inteiros positivos, informa magic_constant como n vezes (n ao quadrado mais um) sobre dois, informa cells como n ao quadrado e define method como a string siamese para que quem chama registre qual construção recebeu. Combine a grade com o seu próprio renderizador se precisar de cor ou animação; este endpoint devolve números, não uma imagem. Mantenha as solicitações dentro do máximo publicado para que a resposta continue um documento JSON pequeno, e não um despejo enorme de matriz.
Onde um gerador de quadrado mágico de ordem ímpar se paga
Quem projeta jogos às vezes semeia um tabuleiro a partir de um quadrado mágico para que cada linha fique equilibrada; chamar uma API parse pequena evita embutir uma implementação avulsa que depois se afasta do passeio do livro.
Casos de integração
Fixtures de quebra-cabeças e katas
Alimente exercícios de programação e testes de propriedades com uma grade n×n determinística cujas somas de linha são n(n²+1)/2, sem tabelas embutidas.
Perguntas técnicas
Como gerar um quadrado mágico de ordem ímpar?
Envie um inteiro ímpar order n ≥ 3 (apelidos n e size). A API devolve uma grade n×n preenchida pelo método siamês, mais a constante mágica n(n²+1)/2.
Quanto custa o gerador de quadrado mágico?
A ferramenta do navegador é grátis. Solicitações API usam saldo pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.