Adoro programar e conhecer todas as línguas, mas sou péssima em matemática. Infelizmente, minha escola exige que os alunos de informática façam um ano de cálculo. Há um teste na próxima semana e eu não conheço nenhuma das fórmulas para derivativos!
Por favor, ajude-me a encontrar as fórmulas. Preciso de uma cábula - um programa (o mais curto possível para que meu professor não perceba) que recebe uma expressão (como 4*x^3-2
) como entrada e gera a derivada. (Eu não me importo se a entrada e a saída usam argumentos de linha de comando, STDIN, STDOUT ou qualquer outra coisa, pois estou fazendo todo o cálculo na minha cabeça de qualquer maneira.)
O teste abrange os seguintes tipos de funções:
- Constantes, como
-3
ou8.5
- Funções de poder, como
x^0.5
oux^-7
- Funções exponenciais, como
0.5^x
ou7^x
(a base é sempre positiva) - Uma constante multiplicada por uma função, como
3*x^5
ou-0.1*0.3^x
- A soma e a diferença de múltiplas funções, como
-5*x^2+10-3^x
Meu professor sempre formata suas perguntas exatamente da mesma maneira, como mostrado acima. Ele também não usa frações, números como pi ou e , ou números realmente grandes (maiores que 1.000). Ele nunca usa parênteses e sempre mostra multiplicação usando um asterisco ( *
). A única variável usada é sempre x .
Por outro lado, meu professor é bastante tolerante com as respostas. Eles não precisam ser simplificados nem formatados exatamente como mostrado acima, desde que fique claro o que a resposta está dizendo.
Embora eu possa usar qualquer idioma, lembre-se de que não consigo descobrir derivativos sozinho. Portanto, se o programa usar funções internas para lidar com equações ou calcular derivadas, não poderei usá-lo.
Durante o teste, não terei acesso à Internet ou a outros arquivos além do programa na folha de dicas.
Nota: Este cenário é totalmente fictício. Na vida real, trapacear e ajudar os outros a trapacear é errado e nunca deve ser feito.
x
seja sempre a variável a diferenciar?