ซ้ายและขวาเงินก้อน Riemannมีความใกล้เคียงเพื่อintegrals ชัดเจน แน่นอนว่าในวิชาคณิตศาสตร์เราต้องมีความแม่นยำมากดังนั้นเราจึงตั้งเป้าที่จะคำนวณพวกมันด้วยเขตการปกครองจำนวนมากที่เข้าใกล้อนันต์ แต่นั่นไม่จำเป็นสำหรับจุดประสงค์ของการท้าทายนี้ คุณควรลองเขียนโปรแกรมที่สั้นที่สุดแทนการป้อนข้อมูลและให้ผลลัพธ์ผ่านวิธีการเริ่มต้นใดๆ ในภาษาการเขียนโปรแกรมใด ๆซึ่งทำสิ่งต่อไปนี้:
งาน
รับจำนวนตรรกยะและ (ข้อ จำกัด ของอินทิกรัล จำกัด ), จำนวนเต็มบวก , boolean แทนซ้าย / ขวาและฟังก์ชันกล่องดำ , คำนวณผลรวม Riemann ทางซ้ายหรือขวา (ขึ้นอยู่กับ ) ของใช้ เท่ากับเขตการปกครอง
I / O Specs
และสามารถเป็นจำนวนตรรกยะ / จำนวนทศนิยมหรือเศษส่วน
สามารถแสดงค่าที่แตกต่างและสอดคล้องกันได้สองค่า แต่โปรดจำไว้ว่าคุณไม่ได้รับอนุญาตให้ใช้ฟังก์ชั่นสมบูรณ์หรือบางส่วนเป็นอินพุต
เป็นฟังก์ชั่นกล่องดำ อ้างถึงคำตอบที่เมตาเชื่อมโยงข้างต้นเนื้อหา (เช่นรหัส) ของกล่องดำฟังก์ชั่นอาจไม่สามารถเข้าถึงคุณสามารถเรียกพวกเขา (ข้อโต้แย้งผ่านถ้ามี) และสังเกตผลผลิตของพวกเขา หากจำเป็นโปรดระบุข้อมูลที่จำเป็นเกี่ยวกับไวยากรณ์ที่ภาษาของคุณใช้เช่นที่เราสามารถทดสอบการส่งของคุณ
ในฐานะที่เป็นเอาท์พุทคุณจะต้องให้เหตุผล / จุดลอยตัว / เศษส่วนแทนยอดรวม Riemann ที่คุณถูกถาม ในฐานะที่เป็นที่กล่าวถึงในอดีตที่ผ่านมา , จุดลอยตัวไม่แน่ชัดสามารถละเลยตราบใดที่การส่งออกของคุณถูกต้องอย่างน้อยสามตำแหน่งทศนิยมเมื่อปัดเศษให้เป็นหลายที่ใกล้ที่สุดของ 1/1000 (เช่น1.4529999
จะปรับแทน1.453
)
รายละเอียดทางคณิตศาสตร์
รับประกันว่าจะต่อเนื่องระหว่างและ (ไม่กระโดดไม่มีรูไม่มีเส้นกำกับแนวดิ่ง)
มีสามกรณีที่เป็นไปได้ที่คุณจะต้องจับคือ: = B (ผลที่ควรจะเป็น0หรือเทียบเท่า) < Bหรือ>ข
ถ้าอินทิกรัลเปลี่ยนเครื่องหมาย นอกจากนี้ยังมีความรู้สึกทางขวาของหนึ่งในกรณีนี้คือต่อ
พื้นที่ใต้กราฟเป็นลบและพื้นที่ด้านบนของกราฟเป็นบวก
ตัวอย่าง / กรณีทดสอบ
ความละเอียดไม่เหมาะสมเพราะฉันต้องย่อขนาดลงเล็กน้อย แต่ก็ยังสามารถอ่านได้
, k = ขวา:
ผลลัพธ์ควรเป็นเนื่องจากความกว้างของแต่ละสี่เหลี่ยมคือและความสูงที่สอดคล้องกันเป็น 27
, k = ซ้าย:
เอาท์พุทควรจะ1.8194792169
, k = ขวา:
มูลค่าการส่งออกที่คาดไว้คือเพราะสัญญาณการเปลี่ยนแปลงที่สำคัญเมื่อพลิกขอบเขต ( )
, k = ซ้าย:
การคำนวณผลรวม Riemann ของเราเราได้รับ13.5714285715
, K = ขวา - ขาออก:18
, K = ซ้าย - 0
, K = ขวา - ออก:0.385723952885505โปรดทราบว่าไซน์ใช้เรเดียนที่นี่ แต่คุณสามารถใช้องศาแทนได้
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.
ตอนนี้ f (x) เป็นกล่องดำทำไมมันถึงสำคัญ?