Expansão de Logaritmos
Expandir logaritmos significa pegar um único logaritmo cujo argumento é formado por multiplicações, divisões e potências — digamos, logaritmo de base 2 de x·y/z — e reescrevê-lo como uma soma de logaritmos mais simples: log₂(x) + log₂(y) − log₂(z).
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Esta API faz essa reescrita por você. Você envia a base e a lista de fatores com suas operações e recebe de volta a expressão expandida, um termo por fator, com os sinais e coeficientes corretos. Argumentos numéricos são validados: um logaritmo só é definido para argumentos positivos, portanto qualquer fator nulo ou negativo é rejeitado com um erro claro, em vez de produzir uma expressão sem sentido.
O que significa expandir um logaritmo
As três leis dos logaritmos transformam a estrutura dentro do argumento em estrutura fora dele. A regra do produto diz que log_b(x·y) é igual a log_b(x) mais log_b(y): a multiplicação interna vira adição externa. A regra do quociente diz que log_b(x/y) é igual a log_b(x) menos log_b(y): a divisão interna vira subtração externa. A regra da potência diz que log_b(x^n) é igual a n vezes log_b(x): um expoente interno desliza para a frente como coeficiente. Expandir um logaritmo é aplicar essas leis da esquerda para a direita até que nada dentro de nenhum logaritmo possa ser decomposto ainda mais. Os estudantes encontram isso ao simplificar expressões antes de derivar, ao resolver equações exponenciais e ao linearizar dados para um gráfico log-log. A operação é puramente mecânica uma vez que você identifica cada fator e como ele entra no argumento, e é exatamente por isso que ela combina com uma API: você descreve a expressão como uma base mais uma lista de operações e fatores, e a expansão retorna como uma string pronta para uso, com cada termo explicitado, seu sinal, seu coeficiente e seu argumento.
Como descrever sua expressão para a API
A entrada tem duas partes. A base é a base do logaritmo: qualquer número positivo diferente de 1, portanto 2, 10 e e funcionam, enquanto 1, 0 e números negativos são rejeitados, pois nenhum logaritmo real tem tal base. O array de termos lista os fatores do argumento em ordem. Cada termo indica uma operação — multiplicar, dividir ou potência — e um argumento. Um termo de multiplicação contribui com seu log e sinal de mais, um termo de divisão com sinal de menos, e um termo de potência com seu expoente extraído como coeficiente à frente. Assim, log de base 2 de x·y/z³ é formado por três termos: multiplicar x, multiplicar y e potência z com expoente 3, o que se expande em log₂(x) + log₂(y) − 3·log₂(z). Os argumentos podem ser simbólicos, como x ou preço, quando você quer a forma algébrica, ou numéricos, como 8, quando você quer uma verificação concreta. Argumentos numéricos devem ser positivos; os simbólicos são mantidos literalmente, porque seu sinal depende dos valores que você atribuir depois. Um expoente negativo em um termo de potência simplesmente inverte o sinal do termo, já que x elevado a menos n é o mesmo que dividir por x elevado a n.
Por que a validação do domínio importa
Um logaritmo real só é definido para argumentos estritamente positivos. O log de zero diverge para menos infinito e o log de um número negativo nem sequer é um número real, portanto uma expansão construída sobre um fator não positivo seria ruído simbólico que quebra silenciosamente no momento em que alguém a avalia. Este endpoint se recusa a produzir esse ruído: quando um argumento numérico é zero ou negativo, a chamada falha com um erro de entrada inválida indicando o termo problemático, e você não é cobrado pela chamada. O mesmo rigor se aplica à base, que deve ser positiva e diferente de 1, e aos expoentes, que devem ser números finitos — um expoente igual a zero é rejeitado porque o termo contribuiria com log de 1, que é zero e quase sempre um erro na entrada. O resultado é determinístico: a mesma requisição sempre retorna a mesma string, byte a byte, o que torna o endpoint seguro para usar dentro de listas de exercícios geradas, corretores automáticos e verificações de CI que comparam saídas literalmente. Ele roda em nossa edge sem armazenar nada, e o algoritmo idêntico roda grátis no navegador nesta página, então você paga US$ 0,002 por chamada apenas quando o automatiza.
Casos de uso
Gere exercícios de álgebra resolvidos
Envie uma base e uma lista de fatores e incorpore a forma expandida diretamente em listas de exercícios, provas ou soluções passo a passo.
Corrija deveres de casa automaticamente
Compare a expressão expandida do estudante com a string canônica que a API retorna para a mesma base e os mesmos termos.
Simplifique antes de derivar
Expanda o log de um produto ou quociente em uma soma para que cada termo seja derivado separadamente, um passo padrão em fluxos de cálculo.
Perguntas frequentes
Quanto custa?
US$ 0,002 por requisição. O mesmo algoritmo também roda grátis no seu navegador nesta página.
Quais bases são aceitas?
Qualquer número positivo exceto 1: 2, 10, e ou qualquer outra base válida. Bases iguais a 1, 0 ou números negativos são rejeitadas.
Os fatores podem ser variáveis em vez de números?
Sim. Um argumento pode ser simbólico (x, preço, velocidade) ou numérico. Argumentos numéricos devem ser positivos; os simbólicos são mantidos como foram escritos.
O que acontece se um argumento for zero ou negativo?
A chamada falha com um erro de entrada inválida indicando o termo, porque um logaritmo real não é definido ali. Você não é cobrado por chamadas rejeitadas.
Como as potências se expandem?
Um termo de potência com expoente n contribui com n vezes o log de seu argumento; um expoente negativo inverte o sinal do termo. Um expoente igual a 0 é rejeitado.
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/expanding-logarithms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":2,"terms":[{"operation":"multiply","argument":"x"},{"operation":"multiply","argument":"y"},{"operation":"divide","argument":"z"}]}'const res = await fetch("https://api.kit.forhosting.com/math/expanding-logarithms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": 2,
"terms": [
{
"operation": "multiply",
"argument": "x"
},
{
"operation": "multiply",
"argument": "y"
},
{
"operation": "divide",
"argument": "z"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/expanding-logarithms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": 2,
"terms": [
{
"operation": "multiply",
"argument": "x"
},
{
"operation": "multiply",
"argument": "y"
},
{
"operation": "divide",
"argument": "z"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/expanding-logarithms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":2,"terms":[{"operation":"multiply","argument":"x"},{"operation":"multiply","argument":"y"},{"operation":"divide","argument":"z"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":2,"terms":[{"operation":"multiply","argument":"x"},{"operation":"multiply","argument":"y"},{"operation":"divide","argument":"z"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/expanding-logarithms", 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
{
"base": 2,
"terms": [
{
"operation": "multiply",
"argument": "x"
},
{
"operation": "multiply",
"argument": "y"
},
{
"operation": "divide",
"argument": "z"
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.expanding_logarithms",
"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_terms | 32 |
max_abs | 1000000000000 |
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. |