As somas de Riemann esquerda e direita são aproximações para integrais definidas . Obviamente, em matemática, precisamos ser muito precisos; portanto, pretendemos calculá-las com várias subdivisões que se aproximam do infinito, mas isso não é necessário para os propósitos deste desafio. Em vez disso, você deve tentar escrever o programa mais curto, obtendo entrada e fornecendo saída através de qualquer um dos métodos padrão , em qualquer linguagem de programação , que faz o seguinte:
Tarefa
Dados dois números racionais e (os limites da integral definido), um número inteiro positivo , um booleano representando esquerda / para a direita e uma função de caixa preta , calcular a soma de Riemann esquerda ou para a direita (dependendo ) de , usando subdivisões iguais .
Especificações de E / S
e podem ser números / de ponto flutuante racional ou fracções.
pode ser representado por dois valores distintos e consistentes, mas lembre-se de quevocê não tem permissãopara assumir funções completas ou parciais como entrada.
é uma função de caixa preta. Citando a resposta da meta acima,o conteúdo (ou seja, o código) das funções da caixa preta pode não ser acessado, você pode chamá-las apenas (passar argumentos, se aplicável) e observar sua saída. Se necessário, inclua as informações necessárias sobre a sintaxe usada pelo seu idioma para que possamos testar seu envio.
Como saída, você deve fornecer uma fração / ponto flutuante / racional que representa a soma de Riemann solicitada. Como discutido no passado , a imprecisão de ponto flutuante pode ser ignorada, desde que sua saída seja precisa com pelo menos três casas decimais quando arredondada para o múltiplo mais próximo de 1/1000 (por exemplo, 1.4529999
é bom em vez de 1.453
).
Especificações matemáticas
é a garantia de ser contínua entre e (sem saltos, sem furos, não há asymptotes verticais).
Há três casos possíveis com os quais você deve lidar: (O resultado deve ser ou equivalente), ou .
Se , a integral altera seu sinal. Além disso, o sentido correto da integral, neste caso, é no sentido de .
As áreas abaixo do gráfico são negativas e as acima do gráfico são positivas.
Exemplos / Casos de Teste
A resolução não é ótima, porque eu tive que reduzi-los um pouco, mas eles ainda são legíveis.
f(x) = x * sin(1 / x); a = 0; b = 1; n = 50; k = right — Output: 0.385723952885505. Note that sine uses radians here, but feel free to use degrees instead.
Agora que f (x) é uma caixa preta, por que isso importa?