অঞ্চল গণনা করা হচ্ছে।


12

ক্ষুদ্রতম কোড যা বক্ররেখ পি (x) = a 0 + a 1 * x + a 2 * x 2 + ..., রেখা y = 0, রেখা x = 0 এবং রেখা x = C এর মধ্যবর্তী অঞ্চল দেয়

(অর্থাত্ এই জাতীয় কিছু:

এলাকা চেয়েছিলেন)

আপনি ধরে নিতে পারেন যে পি (x)> = 0 x <সি এর জন্য (যদি আপনার কোড পি (x)) এর নেতিবাচক মানগুলির জন্য কাজ করে তবে বোনাস পয়েন্ট।

ইনপুট

সি, এ 0 , এ 1 , ...

আউটপুট

একটি আসল সংখ্যা - অঞ্চল

উদাহরণ 1:

input: 2, 0, 1
output: 2.0

পরীক্ষা 2:

input: 3.0, 0, 0.0, 2
output: 18

হালনাগাদ:

  • সি> 0 টিও ধরে নেওয়া হয়
  • ক্ষেত্রফলটি বক্ররেখের মধ্যে, y = 0, x = C এবং x = 0
  • ইনপুটটি কোনও ফর্মের একটি তালিকা হতে পারে; অবিচ্ছিন্নভাবে কমা আলাদা করা উচিত নয়।
  • আউটপুটটি যে কোনও ফর্মের আসল হতে পারে (সুতরাং, '18' একটি বৈধ আউটপুট, যেমন '18 .0 'হয়)

1
যেহেতু প্রায় কোনও ইনপুটটির জন্য উত্তর "অসীম" হতে চলেছে, তাই আমি মনে করি আপনি সমস্যাটি ভুল করে দিয়েছেন।
পিটার টেলর

কমা-বিচ্ছিন্ন স্ট্রিং হিসাবে স্ট্যান্ডার্ড ইনপুট থেকে ইনপুটটি পড়া উচিত? অথবা আমরা কোনও ফাংশন লিখতে পারি যা একটি যুক্তি হিসাবে ভাসমানগুলির একটি তালিকা নেয়?
sepp2k

আপনি কি x = 0, x = C, y = 0, এবং বক্ররেখার মধ্যবর্তী?
কিথ র্যান্ডাল

2
@ পিটার: আমার মনে হয় না। তিনি একজন বিপরীত (যা অবিচ্ছেদ্য একটি ছবি দেখায় হবে বিকিরণ ঘটে), কিন্তু ফাংশন তিনি নির্দিষ্ট করে একটি বহুপদী হয়। [0, সি) এর উপরে সুনির্দিষ্ট অবিচ্ছেদ্য সীমাবদ্ধ সহগের জন্য ভালভাবে সংজ্ঞায়িত এবং সসীম হওয়া উচিত।
dmckee --- প্রাক্তন-মডারেটর বিড়ালছানা

1
@ ডিএমকেহে, আমি এটি লক্ষ্য করেছিলাম, তবে আমার বক্তব্যটি আরও বেশি যে তিনি বহুবর্ষকে সংহত করছিলেন - C ইনফটিটি সি থেকে এবং কোনও তুচ্ছ-বহির্ভুত বহুবর্ষের জন্য যেটি বিভক্ত হয়। এটি ঠিক করার জন্য এখন প্রশ্নটি সংশোধন করা হয়েছে।
পিটার টেলর

উত্তর:



5

পাইথন - 71 63 টি অক্ষর:

a=input()
print sum(1.*a[i]*a[0]**i/i for i in range(1,len(a)))

এর মধ্যে কোনো বহুপদী ফাংশন একটি সহজ ইন্টিগ্রেশন এর 0এবং C। এবং আমি এটি পরীক্ষা করি নি, তবে আমি নিশ্চিত যে এটি নেতিবাচক মানগুলির জন্য কাজ করে।


input()আজ সম্পর্কে নতুন কিছু শিখেছে :)
st0le

3

হাস্কেল, 85 টি অক্ষর

f(c:l)=sum.map(\(i,x)->x*c**i/i)$zip[1..]l
main=getLine>>=print.f.read.('[':).(++"]")

1
প্রশ্নটি আপনি যেমন চিকিত্সা করেন ততটা কঠোর নয়। আপনি অবশ্যই ইনপুট কোডটি সহজতর করতে পারবেন এবং সম্ভবত I / O কে সম্পূর্ণভাবে সরিয়ে ফেলবেন।
জেবি

3

জে, 26 অক্ষর

f=:3 :'((1}.y)&p.d._1)0{y'

যেমন

   f 2 0 1
2
   f 3 0 0 2
18

ঝরঝরে! আমি এটিকে আরও স্বচ্ছন্দ করার কোনও উপায় খুঁজে পাচ্ছি না। এটি d.একটি সংমিশ্রণ হওয়া আমার নবাগত জে দক্ষতার পক্ষে খুব সহজ করে না।
জেবি

@ জেবি: হ্যাঁ, ডি। আমার জন্যও "সমস্যা"। :)
এভেলেক্স

2

রুবি, 65 টি অক্ষর

i=s=0
c=gets(q=",").to_f
$<.each(q){|a|s+=a.to_f*c**(i+=1)/i}
p s

কোডটি ইনপুট শেষ না হওয়া অবধি পড়বে, লাইনের শেষ নয়। সুতরাং ইনপুটটি সমাপ্ত করতে আপনাকে Ctrl+ চাপুন D। ( echoকোনও ফাইল ব্যবহার বা ইনপুটটি পাইপ করুন ))


1
আমার মনে হয় একটি ভেরিয়েবলকে "," বরাদ্দ করা সাহায্য করবে ... এটি সম্পর্কে কীভাবে c=gets(q=",").to_fএবং $<.each(q){|a|s+=a.to_f*c**(i+=1)/i}একটি চর বাঁচায় ....
st0le

@ স্টিল: খুব সুন্দর ধন্যবাদ।
sepp2k

বরাদ্দ করা ","(অথবা ?,, যা এমনকি খাটো) এর $/আপনাকে যুক্তি বাদ করার অনুমতি দেয় $<.each। এবং এর $<.mapচেয়ে একটি চরিত্র ছোট $<.each। ;)
ভেন্টোরো

2

সি জিসিসি 186 182 বাইট

f(){i=0,l=1;float *d,s=0.0;d=malloc(sizeof(float)*50);scanf("%f",&d[0]);while(getchar()!='\n'){scanf("%f",&d[l]);l++;}for(i=0;i<l;i++)s+=d[i+1]*pow(d[0],(i+1))/(i+1);printf("%f",s);}

এই প্রোগ্রামটি বক্ররেখা, y = 0, x = C এবং x = 0 এর মধ্যে যে কোনও বক্ররেখা জন্য একটি আউটপুট (ক্ষেত্র) দেয়। এটি 0 থেকে 48 এর মধ্যে সহগের ( floatপাশাপাশি) নিতে পারে । প্রথম গৃহীত ইনপুটটি সহগের দ্বারা অনুসরণ করা হয়। শেষ সহগের পরে টিপুন ।CÈnter

void f()
{
  int i=0,l=1;
  float *d,s=0.0;
  const int sz=100;
  d=malloc(sizeof(float)*sz);

  scanf("%f",&d[0]);
  while(getchar()!='\n')
  {
    scanf("%f",&d[l]);
    l++;
  }

  for(i=0;i<l;i++)
    s+=d[i+1]*pow(d[0],(i+1))/(i+1);

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