রিমানের অঙ্কগুলি ব্যবহার করে আনুমানিক সুনির্দিষ্ট অখণ্ডগুলি


19

বাম এবং ডান রিমন অঙ্কগুলি নির্দিষ্ট ইন্টিগ্রালগুলির প্রায় অনুমান । অবশ্যই, গণিতে আমাদের খুব নির্ভুল হওয়া দরকার, তাই আমরা তাদের লক্ষ্য নির্ধারণ করেছি এমন অনেকগুলি মহকুমা যা অনন্তের কাছে পৌঁছায়, তবে এই চ্যালেঞ্জের উদ্দেশ্যে এটি প্রয়োজন হয় না। পরিবর্তে আপনার যেকোন প্রোগ্রামিং ভাষায় , কোনও ডিফল্ট পদ্ধতিতে আউটপুট সরবরাহ এবং সংক্ষিপ্ততম প্রোগ্রামটি লেখার চেষ্টা করা উচিত যা নিম্নলিখিতটি করে:

কার্য

প্রদত্ত দুটি মূলদ সংখ্যার এবং (নির্দিষ্ট অবিচ্ছেদ্য সীমা), একটি ধনাত্মক পূর্ণসংখ্যা , একটি বুলিয়ান প্রতিনিধিত্বমূলক ডান হতে বামে / এবং একটি কালো বাক্স ফাংশন , বাম বা ডান রিম্যান সমষ্টি নিরূপণ (তার উপর নির্ভর করে ) এর ব্যবহার করে সমান উপবিভাজনগুলিতে।একটিএনএকটি( এক্স ) এক্স এন একটি(এক্স)এক্সএন

আই / ও স্পেকস

  • একটি এবং যৌক্তিক / ভাসমান পয়েন্ট সংখ্যা বা ভগ্নাংশ হতে পারে।

  • কোনও দুটি স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ মান দ্বারা প্রতিনিধিত্ব করা যেতে পারে, তবে দয়া করে মনে রাখবেন যে আপনাকে ইনপুট হিসাবে সম্পূর্ণ বা আংশিক ফাংশন গ্রহণ করার অনুমতি নেই

  • একটি ব্ল্যাক-বক্স ফাংশন। উপরের লিঙ্কযুক্ত মেটা উত্তরের উদ্ধৃতি দিয়ে , ব্ল্যাক-বাক্স-ফাংশনের সামগ্রী (অর্থাত্ কোড) অ্যাক্সেস করা যাবে না, আপনি কেবল তাদের কল করতে পারেন (প্রযোজ্য ক্ষেত্রে আর্গুমেন্টগুলি পাস করে) এবং তাদের আউটপুট পর্যবেক্ষণ করতে পারেন । যদি প্রয়োজন হয়, দয়া করে আপনার ভাষাটি যে সিনট্যাক্স ব্যবহার করে তা সম্পর্কে প্রয়োজনীয় তথ্য অন্তর্ভুক্ত করুন যাতে আমরা আপনার জমা পরীক্ষা করতে পারি।

আউটপুট হিসাবে, আপনাকে অবশ্যই জিজ্ঞাসা করা রিমন সমষ্টি উপস্থাপন করে একটি যৌক্তিক / ভাসমান পয়েন্ট / ভগ্নাংশ সরবরাহ করতে হবে। অতীতে আলোচিত হিসাবে , ভাসমান-বিন্দু অপ্রচলতা উপেক্ষা করা যেতে পারে, যতক্ষণ না আপনার আউটপুটটি কমপক্ষে 1/1000 এর নিকটতম একাধিকের সাথে গোল হয় (উদাহরণস্বরূপ 1.4529999পরিবর্তে ভাল 1.453) when

গণিত চশমা

  • মধ্যে একটানা হতে নিশ্চিত করা হয় এবং (কোন জাম্প, কোন গর্ত, কোন উল্লম্ব asymptotes)।একটি

  • আপনার পক্ষে তিনটি সম্ভাব্য কেস পরিচালনা করতে হবে: (ফলাফলটি বা এর সমতুল্য হওয়া উচিত ), বা ।একটি=0একটি<একটি>

  • যদি , অখণ্ড তার চিহ্নটি পরিবর্তন করে। এছাড়াও, এক্ষেত্রে অবিচ্ছেদ্যতার সঠিক বোধটি দিকে ।<একটিএকটি

  • গ্রাফের নীচে অঞ্চলগুলি নেতিবাচক এবং গ্রাফের উপরে থাকাগুলি ইতিবাচক।

উদাহরণ / পরীক্ষার কেস

রেজোলিউশনটি অনুকূল নয়, কারণ আমাকে সেগুলি কিছুটা সঙ্কুচিত করতে হয়েছিল, তবে তারা এখনও পাঠযোগ্য।

  • (এক্স)=2এক্স+ +1,একটি=5,=13,এন=4 , k = ডান:

    2x + 1 টি

    ফলাফলটি , কারণ প্রতিটি আয়তক্ষেত্রের প্রস্থ এবং এটি সম্পর্কিত উচ্চতা ।152+192+232+272=168|b-একটি|এন=2f(7)=15,f(9)=19,(11)=23,(13)=27

  • (এক্স)=এক্স,একটি=1,=2.5,এন=3 , k = বাম:

    বর্গমূল

    আউটপুটটি হওয়া উচিত ।1,8194792169

  • (এক্স)=-3এক্স+ +4+ +এক্স25,একটি=12.5,=2.5,এন=10 , k = ডান:

    -3x +4 +1 / 5x ^ 2

    প্রত্যাশিত আউটপুট মান হ'ল , কারণ অবিচ্ছেদ্য পরিবর্তনগুলি সীমাগুলি উল্টানোর সময় লক্ষণগুলি পরিবর্তন করে ( )-(-4.05-5.45-6.45-7,05-7.25-7,05-6.45-5.45-4.05-2.25)=55.5বি < <একটি

  • (এক্স)=9-4এক্স+ +2এক্স27,একটি=0,=15,এন=3 , k = বাম:

    9-4x + + 2/7 গুণ ^ 2

    আমাদের যোগফল গণনা করা হচ্ছে, আমরা ।13,5714285715

  • (এক্স)=6,একটি=1,=4,এন=2 , k = ডান - আউটপুট: ।18

  • (এক্স)=এক্স7+ +165এক্স+ +1,একটি=7,=7,এন=4 , k = বাম - আউটপুট: ।0

  • (এক্স)=এক্সপাপ(এক্স-1),একটি=0,=1,এন=500.385723952885505 , k = ডান - আউটপুট: । নোট করুন যে সাইন এখানে রেডিয়ান ব্যবহার করে তবে তার পরিবর্তে ডিগ্রি ব্যবহার করতে নির্দ্বিধায়।0,385723952885505


3
বিশেষ ধন্যবাদ: এই চ্যালেঞ্জটি স্যান্ডবক্সে পোস্ট করা হয়েছে , যেখানে এটি ব্যবহারকারী ২০২29২৯ , অ্যাডমবর্কবার্ক এবং লিকি নুনের কাছ থেকে মূল্যবান প্রতিক্রিয়া পেয়েছে ।
মিঃ এক্সকোডার

আমি নিশ্চিত আশা এখানে সমাধান ক্যালক আমি শিক্ষার্থীদের অনেক বছর 'মূল্য সাহায্য ...
: Giuseppe

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.এখন যে চ (এক্স) একটি কালো বাক্স কেন এটি গুরুত্বপূর্ণ?
l4m2

@ l4m2 এটি খুব বেশি গুরুত্ব দেয় না, কেবল মানুষকে জানাতে চেয়েছিল যে তাদের এ জাতীয় বিষয়ে চিন্তা করা উচিত নয়।
মিঃ এক্সকোডার

@ জিউসেপ নং। এখানে প্রোগ্রামগুলির পদ্ধতি হ্যান্ডহেল্ড ক্যালকুলেটরগুলির পদ্ধতির চেয়েও খারাপ। [শুধু বলছি]
ব্যবহারকারী 202729

উত্তর:


8

আর , 69 65 63 57 বাইট

function(a,b,n,k,f,w=(b-a)/n)sum(sapply(a+w*(1:n-k),f))*w

এটি অনলাইন চেষ্টা করুন!

k=FALSEডান হাতের অঙ্কের জন্য নেয় , যদিও টিআইও লিঙ্কটিতে এখন ব্যবহারের সহজলভ্যতার জন্য "বাম" এবং "ডান" এর উপকরণ অন্তর্ভুক্ত রয়েছে।

a+w*(1:n-k) উপযুক্ত বাম- বা ডান হাতের পয়েন্ট উত্পন্ন করে।

তারপরে ফলাফলের প্রতিটি উপাদানগুলিতে sapplyপ্রযোজ্য f, যা আমরা ফলস্বরূপ sumব্যবধানের মধ্যবর্তী প্রস্থের (b-a)/nসাহায্যে এবং গুণিত করি । এটি সর্বশেষে আমাদের কাছে থাকা যে কোনও সাইন ইস্যুগুলি খুব সুন্দরভাবে যত্ন নেয়।


4

SNOBOL4 (CSNOBOL4) , 127 বাইট

	DEFINE('R(a,b,n,k,p)')
R	l =(b - a) / n
	i =1
l	R =R + eval(p '(a + l * (i - k))')
	i =lt(i,n) i + 1	:s(l)
	R =R * l :(return)

এটি অনলাইন চেষ্টা করুন!

Assuming যে ফাংশন pকোথাও সংজ্ঞায়িত করা হয়, এই নেয় a,b,n,k,(name of p)সঙ্গে, k=0ডান এবং l=1বাম জন্য।

বিড়ালপাখার SNOBOL4+সমর্থন REALকরে তবে এর মধ্যে বিল্টিন ট্রিগ ফাংশন নেই। তবে, আমি মনে করি sinটেলর সিরিজ ব্যবহার করে কেউ যুক্তিসঙ্গত ফাংশন নিয়ে আসতে পারে ।

আমি ১০০% নিশ্চিত নই যে এসএনওবিএল-এ ব্ল্যাক-বক্স ফাংশনটি পাস করার এটি "সঠিক" উপায় (যা আমার জ্ঞানের মতে, প্রথম শ্রেণির ফাংশন নেই), তবে এটি আমার কাছে যুক্তিসঙ্গত বলে মনে হয়।

আমি মনে করি যে ধরে নেওয়া ফাংশনটি fসংক্ষিপ্ত হিসাবে সংজ্ঞায়িত করা হয়েছে , লাইন হিসাবে lহতে পারে

l	R =R + f(a + l * (i - k))

তবে তারপরে এটি আর্গুমেন্ট হিসাবে পাস করা হয় না, যা কিছুটা "প্রতারণার" মতো লাগে।

নোট করুন যে টিআইও লিঙ্কটির স্টেটমেন্টের :(e)পরে রয়েছে DEFINE, যাতে কোডটি আসলে সঠিকভাবে চলবে।


4

জুলিয়া 0.6 , 50 বাইট

R(f,a,b,n,k)=(c=(b-a)/n;sum(f.(a+[k:n+k-1...]c))c)

এটি অনলাইন চেষ্টা করুন!

একটি সাধারণীকৃত পরিসীমা তৈরি করা হয়, ভেক্টরে সংগ্রহ করা হয় এবং তারপরে ছোট করে তোলা হয়। ব্যবহার করে কোনও ভেক্টরে রেঞ্জটি সংগ্রহ করা যখন [X...]এটিকে inexact errorসরাসরি 0 এর সাথে গুণন করার সময় এড়ানোর জন্য প্রয়োজনীয় a=b। একইভাবে, সরাসরি :বা range()যখন সম্ভব হয় তখনই কোনও পরিসীমা তৈরি করা সম্ভব হয় না a=b

ট ব্যবহার খুব সমাধান অনুরূপ Guiseppe সঙ্গে, k=1জন্য rightএবং k=0জন্য left


f.fতার যুক্তি (গুলি) উপর ভেক্টরাইজ করে?
জিউসেপ

@ জিউসেপ: একদম ঠিক। f.এর উপাদান ভিত্তিক প্রয়োগ f
লুক্স

2

হাস্কেল , 73 67 বাইট

টিপসের জন্য এইচ.পি.উইজ এবং ব্রুস ফোর্টকে ধন্যবাদ!

(f&a)b n k|d<-(b-a)/realToFrac n=d*sum(f<$>take n(drop k[a,a+d..]))

এটি অনলাইন চেষ্টা করুন!

খুব সোজা সমাধান।

kহয় 0বাম এবং 1ডান জন্য।


1
আপনি যদি b
এনটি

2

পাইথন 2 , 99 94 বাইট

একটি নিষ্পাপ সমাধান একটি বিট।

def R(f,a,b,n,k):s=cmp(b,a);d=s*(b-a)/n;return s*sum(d*f([0,a,b][s]+i*d)for i in range(k,n+k))

এটি অনলাইন চেষ্টা করুন!



কিছু কারণে আমি ভেবেছিলাম আমাদের পূর্ণসংখ্যার ইনপুট পরিচালনা করতে হবে। ধন্যবাদ।
mbomb007


1

জেলি , 21 বাইট

ƓḶ+Ɠ÷
IḢ×¢A+ṂɠvЀÆm×I

এটি অনলাইন চেষ্টা করুন!

নিন a,bআর্গুমেন্ট থেকে, এবং

n
right
f

স্টিডিন থেকে


আপনি যদি জেলির সাথে পরিচিত না হন তবে ব্ল্যাক বক্স ফাংশনটি লিখতে আপনি পাইথন ব্যবহার করতে পারেন f:

f (x) = 2x + 1 ; a = 5; = 13; n = 4; k = ঠিক আছে

f (x) = √x ; a = 1; = 2.5; n = 3; k = বাম

f (x) = -3x + 4 + 1/5 * x 2 ; a = 12.5; = 2.5; n = 10; k = ঠিক আছে

f (x) = 9 - 4x + 2/7 * x 2 ; a = 0; = 15; n = 3; k = বাম

f (x) = 6 ; a = 1; = 4; n = 2; k = ঠিক আছে

f (x) = x * sin (1 / x) ; a = 0; = 1; n = 50; k = ঠিক আছে


ব্যাখ্যা:


ƓḶ+Ɠ÷     Helper niladic link.
Ɠ         First line from stdin. (n). Assume n = 4.
 Ḷ        Lowered range (unlength). Get [0, 1, 2, 3].
  +Ɠ      Add second line from stdin (k). Assume k = 1 (right).
            Get [1, 2, 3, 4].
    ÷     Divide by (n). Get [0.25,0.5,0.75,1].

IḢ×¢A+ṂɠvЀÆm×I   Main monadic link. Take input `[a, b]`, assume `a=2,b=6`.
IḢ                `a-b`. Get `-4`.
  ×¢              Multiply by value of niladic link above. Get `[-1,-2,-3,-4]`.
    A             Absolute value. Get `[1,2,3,4]`.
     +Ṃ           Add min(a, b) = 2. Get `[3,4,5,6]`.
        vЀ       For each number, evaluate with...
       ɠ            input line from stdin.
           Æm     Arithmetic mean.
             ×I   Multiply by `a-b`.


1

পার্ল 6 , 65 বাইট

{my \d=($^b-$^a)/$^n;sum ($a,*+d...*)[($^k+^0>d)+ ^$n]».&^f X*d}

এটি অনলাইন চেষ্টা করুন!

তুলনামূলকভাবে সোজা। একমাত্র জটিলতা হ'ল a > bকেসটি পরিচালনা করছে , যা আমি ইনপুট ফ্ল্যাগটির $^kসাথে এক্সওর-আইএন দিয়ে করি 0 > d, যা যখন এটি উল্টায় a > b


0

এপিএল (ডায়ালগ ক্লাসিক) , 37 বাইট

{(a b n k)←⍵⋄ln÷⍨b-al×+/⍺⍺a+l×k+⍳n}

এটি অনলাইন চেষ্টা করুন!

এপিএল NARS, 37 টি অক্ষর

ফাংশনটির বামদিকে ডান সংখ্যাসূচক আর্গুমেন্ট অ্যাবনে কেতে যুক্তি রয়েছে has প্রশ্নে কে = এখানে বাম অর্থ এর অর্থ কে = ¯1; k = এখানে ঠিক এর অর্থ কে = 0। টেস্ট:

  f←{(a b n k)←⍵⋄ln÷⍨b-al×+/⍺⍺a+l×k+⍳n}
  {1+2×⍵} f 5 13 4 0
168
  {√⍵} f 1 2.5 3 ¯1
1.819479217
  {4+(¯3×⍵)+0.2×⍵×⍵} f 12.5 2.5 10 0
55.5
  {9+(¯4×⍵)+7÷⍨2×⍵×⍵} f 0 15 3 ¯1
13.57142857
  {6-0×⍵} f 1 4 2 0
18
  {1+(165×⍵)+⍵*7} f 7 7 4 ¯1
0
  {⍵×1○÷⍵} f 0 1 50 0
0.3857239529

জমাগুলি অক্ষরে নয়, বাইটে গণনা করা হয়। আমি মনে করি না যদি NARS এর একটি কাস্টম কোড পৃষ্ঠা রয়েছে (সুতরাং এটি 37 বাইটও হবে) বা ইউটিএফ 16 ব্যবহার করে।
উরিল

@ ইউরাইল এটি ডায়ালগ এপিএল ক্লাসিকের 37 বাইট হয় লিঙ্কটি অনুসরণ করুন; সম্ভবত নর্স এপিলের জন্য 35x2 বাইটস ...
রোজলুপি

তাহলে কেন আপনি এটি এনআরএস হিসাবে লিখেন? NARS এমনকি dfnss আছে? যাইহোক আপনি 35 বাইটের জন্য প্রথম পিতামাতাকে বাদ দিতে পারেন
Uriel

এপিএল
নারস,
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.