Las sumas de Riemann izquierda y derecha son aproximaciones a integrales definidas . Por supuesto, en matemáticas necesitamos ser muy precisos, por lo que nuestro objetivo es calcularlos con una serie de subdivisiones que se acercan al infinito, pero eso no es necesario para los propósitos de este desafío. En su lugar, debe intentar escribir el programa más corto, tomar entradas y proporcionar salidas a través de cualquiera de los métodos predeterminados , en cualquier lenguaje de programación , que haga lo siguiente:
Tarea
Dados dos números racionales y (los límites de la integral definida), un entero positivo , un booleano que representa izquierda / derecha y una función de recuadro negro , calcula la suma de Riemann izquierda o derecha (dependiendo de ) de , usando subdivisiones iguales .f
Especificaciones de E / S
y pueden ser números racional / de punto flotante o fracciones.
puede ser representado por dos valores distintos y consistentes, pero tenga en cuenta que no se le permite tomar funciones completas o parciales como entrada.
es una función de recuadro negro. Citando la meta respuesta vinculada anteriormente,no se puede acceder al contenido (es decir, el código) de las funciones de recuadro negro, solo puede llamarlas (pasar argumentos si corresponde) y observar su salida. Si es necesario, incluya la información necesaria sobre la sintaxis que usa su idioma para que podamos probar su envío.
Como salida, debe proporcionar una fracción / punto flotante / racional que represente la suma de Riemann que se le solicita. Como se discutió en el pasado , la imprecisión de punto flotante puede ignorarse, siempre que su salida sea precisa al menos con tres decimales cuando se redondea al múltiplo más cercano de 1/1000 (por ejemplo, 1.4529999
está bien en lugar de 1.453
).
Especificaciones de matemáticas
se garantiza que sea continua entre y(sin saltos, sin agujeros, no hay asíntotas verticales).
Hay tres casos posibles que debe manejar: (El resultado debe ser o sus equivalentes), o .
Si , la integral cambia su signo. Además, el sentido correcto de la integral en este caso es hacia .
Las áreas debajo del gráfico son negativas y las que están arriba del gráfico son positivas.
Ejemplos / Casos de prueba
La resolución no es óptima, porque tuve que reducirlos un poco, pero aún son legibles.
, k = derecha:
El resultado debe ser , porque el ancho de cada rectángulo es y el correspondiente las alturas son .
, k = izquierda:
La salida debe ser .
, k = derecha:
El valor de salida esperado es , porque la integral cambia de signo al voltear los límites ( ) .
, k = izquierda:
Calculando nuestra suma de Riemann, obtenemos .
, k = derecha - Salida: .
, k = izquierda - Salida: .
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.
Ahora que f (x) es un cuadro negro, ¿por qué es importante?