বহুবর্ষের এক পর্যায়ে পরিবর্তনের হার সন্ধান করুন


15

বহুবর্ষের সমীকরণ এবং একটি এক্স-কোঅর্ডিনেটটি বক্ররেখার সেই এক্স-কোর্ডারে বিন্দুর পরিবর্তনের হার সন্ধান করে।

একটি বহুপদী আকারে রয়েছে: ax n + ax n-1 + ... + ax 1 + a, যেখানে a a Q এবং n ϵ W. এই চ্যালেঞ্জের জন্য, n যদি আপনি না চান তবে 0 হতে পারে কোনও এক্স নেই এমন বিশেষ ক্ষেত্রে (ধ্রুবক) মোকাবেলা করতে।

সেই এক্স-কোর্ডে পরিবর্তনের হার খুঁজতে, আমরা বহুবর্ষের ডেরিভেটিভ পেতে পারি এবং এক্স-কোর্ডে প্লাগ করতে পারি।

ইনপুট

বহুপদী কোনও যুক্তিসঙ্গত আকারে নেওয়া যেতে পারে, তবে আপনাকে অবশ্যই সেই ফর্ম্যাটটি স্পষ্টভাবে বর্ণনা করতে হবে। উদাহরণস্বরূপ, ফর্মের একটি অ্যারে [..[coefficient, exponent]..]গ্রহণযোগ্য।

আউটপুট

প্রদত্ত x-Coord এ পয়েন্ট পরিবর্তনের হার।

এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড।

উদাহরণ

[[4, 3], [-2, 4], [5, 10]]   19    ->   16134384838410
                  [[0, 4]]  400    ->   0
           [[4, 0], [5,1]]  -13    ->   5
      [[4.14, 4], [48, 2]]   -3    ->   -735.12
         [[1, 3], [-5, 0]]    5.4  ->   87.48

8
যার উপযুক্ত গণিতের পটভূমি নেই তার জন্য অ্যালগরিদম: A x ^ B + C x ^ D + ... এর ডেরিভেটিভ হ'ল (A B) * x ^ (B-1) + (C D) * x ^ ( ডি -1) + ...
স্পার

আমি ডাব্লু ডাব্লু সেটটির সাথে পরিচিত নই যে প্রাকৃতিক সংখ্যাটি ইউনিয়ন 0?
অ্যালেক্স এ।

@ অ্যালেক্সা।, হ্যাঁ, এটি।
ড্যানিয়েল


2
@ পিটারটেলর আমার মনে হয় তারা এ জাতীয় ধারণা ভাগ করে নিলেও আমি মনে করি না যে সেখান থেকে কোনও উত্তর খুব, খুব তাৎপর্যপূর্ণ পরিবর্তন ছাড়াই এখানে পোস্ট করা যেতে পারে।
অ্যালেক্স এ।

উত্তর:


23

গণিত, 6 বাইট

#'@#2&

(বিট যে , MATL এবং 05AB1E)

প্রথম যুক্তিটি অবশ্যই বহুপদী হতে হবে, #এর পরিবর্তনশীল হিসাবে এবং &শেষে (যেমন একটি খাঁটি ফাংশন বহুপদী; যেমন 3 #^2 + # - 7 &)। দ্বিতীয় যুক্তি হ'ল পয়েন্টের x- সমন্বয়।

ব্যাখ্যা

#'

প্রথম যুক্তির ডেরাইভেটিভ নিন ( 1নিহিত)

... @#2&

দ্বিতীয় যুক্তিতে প্লাগ করুন।

ব্যবহার

#'@#2&[4 #^3 - 2 #^4 + 5 #^10 &, 19] (* The first test case *)

16134384838410


3
আপনি এখন 0 বাইট দ্বারা জিতেছেন :
লুইস মেন্ডো

@ লুইসমেন্দো যখন কোনও শেফের ছুরিযুক্ত কোনও লোক কোনও কাটাকাটি প্রতিযোগিতায় একটি ম্যান্ডোলিনের সাথে বেঁধে ফেলতে পারে, আমি ছুরিটি ব্যবহার করে লোকটিকে এই বিষয়টি জানাতে চাই। ;)
জে ...

8

এমএটিএল , 8 6 বাইট

yq^**s

ইনপুটটি হ'ল: গুণফলগুলির অ্যারে, সংখ্যা, অ্যারে।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন: 1 , 2 3 , 4 , 5

ব্যাখ্যা

উদাহরণস্বরূপ ইনপুট বিবেচনা করুন [3 4 10], 19, [4 -2 5]

y    % Take first two inputs implicitly and duplicate the first
     %   STACK: [3 4 10], 19, [3 4 10]
q    % Subtract 1, element-wise
     %   STACK: [3 4 10], 19, [2 3 9]
^    % Power, element-wise
     %   STACK: [3 4 10], [361 6859 322687697779]
*    % Multiply, element-wise
     %   STACK: [1083 27436 3226876977790]
*    % Take third input implicitly and multiply element-wise
     %   STACK: [4332 -54872 16134384888950]
s    % Sum of array
     %   STACK: 16134384838410

7

জুলিয়া, 45 42 40 37 বাইট

f(p,x)=sum(i->prod(i)x^abs(i[2]-1),p)

এটি এমন একটি ফাংশন যা টিপলস এবং একটি সংখ্যার ভেক্টরকে অ্যাক্সেস করে এবং একটি নম্বর দেয়। নিখুঁত মানটি হ'ল তা নিশ্চিত করা যায় যে ঘাতকটি নেতিবাচক নয়, যা প্রয়োজনীয় কারণ জুলিয়া বিরক্তিকর DomainErrorকোনও সংকেতকে কোনও নেতিবাচক ব্যক্তির কাছে উত্থাপন করার সময় নিক্ষেপ করে ।

এটি অনলাইন চেষ্টা করুন!(সমস্ত পরীক্ষার কেস অন্তর্ভুক্ত)

বেশ কয়েকটি সংশোধন এবং বাইটের জন্য গ্লেন ওকে ধন্যবাদ।


3
আমি ভীত যে @ অ্যালেক্সা। এবং জুলিয়া ভেঙে গেল, তবে এখানে তারা আবার একত্রিত হয়েছে <3
flawr

আপনি অতিরিক্ত তিনটি বাইট সংরক্ষণ করতে পারেন যদি, i[2]>0&&ধ্রুবক কেসটি মোকাবেলা করার পরিবর্তে , আপনি abs(i[2]-1)এর সূচকটিতে ব্যবহার করেন x। এবং আরও তিনটি বাইট সংরক্ষণের জন্য কিছুটা কম পরিষ্কার কৌশলটি p%xপরিবর্তে ব্যবহার করা উচিত f(p,x)- নোট করুন যে আপনি এটি কল করতে পারেন %(p,x)যেন আপনি এটি ফাংশন আকারে ব্যবহার করতে চান ... দুর্ভাগ্যক্রমে, মনে হচ্ছে এটি টিআইও-তে কাজ করে না (যা আপাতদৃষ্টিতে প্রকাশিত হয়েছে) জুলিয়া 0.4.6 চলছে) যদিও এটি আমার জুলিয়া ০.০.০ এ কাজ করে।
গ্লেন ও

@ GlenO নিস, পরামর্শের জন্য ধন্যবাদ। আমি সেই absঅংশটি নিয়ে গিয়েছিলাম , তবে ইনফিক্স অপারেটরদের নতুন করে সংজ্ঞায়িত করা শারীরিকভাবে আমাকে বেদনা দেয় ...
অ্যালেক্স এ।

5

05AB1E ,12 11 বাইট

আদনানকে ধন্যবাদ একটি বাইট সংরক্ষণ করা।

vy¤<²smsP*O

v          For each [coefficient, power] in the input array
 y         Push [coefficient, power]
  ¤<       Compute (power-1)
   ²       Push x value (second input entry)
    sms    Push pow(x, power-1)
       P   Push coefficient * power ( = coefficient of derivative)
        *  Push coefficient * power * pow(x, power-1)
         O Sum everything and implicitly display the result

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

ভাসমান পয়েন্ট যথার্থতা পাইথনের। আমি বর্তমানে স্ট্যাকের মানগুলি দু'বার অদলবদল করছি, সম্ভবত এটি এড়াতে এবং কিছু বাইট সংরক্ষণ করার উপায় রয়েছে।


1
আমি বিশ্বাস করি আপনি }:) ছেড়ে যেতে পারেন ।
আদনান

DIs<m**O@ লুইস মেন্ডো প্রদত্ত এমএটিএল উত্তর অনুসরণ করে 8 টি বাইট রয়েছে।
যাদু অক্টোপাস উরান

আরও ভাল, s¹<m**O7 বাইট হয়। ( 05ab1e.tryitonline.net/… )
ম্যাজিক অক্টোপাস

আমি আসলটি রাখার সময় এটি ইনপুট ফর্ম্যাটটিতে যথেষ্ট পরিবর্তন ঘটে। তবে আমি সম্মত হই যে ইনপুট ফর্ম্যাটটি সামাল দেওয়া ছোট উত্তরগুলি সক্ষম করে।
ব্যবহারযোগ্য

@ সম্ভবত এটি সত্য, তবে অন্যরা সেই ফাঁকটি ব্যবহার করেছে;)
ম্যাজিক অক্টোপাস ইউরেন

4

পাইথন 3, 41 বাইট

A বাইট অপসারণ করা হয়েছে @ অ্যান্ড্রাসডিককে ধন্যবাদ ! আসলে এই উত্তরটি এখন আমার চেয়ে তার বেশি ...

দুটি সংশোধনের জন্য @ 1 ডারকো 1 কেও ধন্যবাদ !

lambda A,x:sum(a*b*x**(b-1) for a,b in A)

বেনামে ফাংশন যা সহগ এবং এক্সপোজনগুলি (চ্যালেঞ্জে বর্ণিত একই ফর্ম্যাট) এবং সংখ্যার সাথে তালিকার একটি তালিকা গ্রহণ করে।

এখানে চেষ্টা করুন


আপনি কেন এর a*x**(b-1)পরিবর্তে যোগফল করতে পারেন a*b*x**(b-1)? এবং আরও, যদি $ x = 0 if হয়?
ডার্কো 1

@ 1 ডারকো 1 আপনি উভয়ই ঠিক আছেন। আমি কিছুক্ষণের মধ্যে এটি পরিবর্তন করব
লুইস মেন্ডো

3

আর, 31 বাইট

function(a,n,x)sum(a*n*x^(n-1))

বেনামে ফাংশন যা সহগের ভেক্টর, এক্সপোজারগুলির aভেক্টর nএবং একটি xমান নেয়।


1
নিস! আমি একই বাইট গণনা সহ আরও একটি উত্তর যুক্ত করেছি। এটি যদিও সম্পূর্ণ ভিন্ন পদ্ধতির ব্যবহার করে। আর আশ্চর্য কি না?
বিলিওব

1
সম্পাদনা করুন: আর একই বাইট গণনা নেই :)
বিলিওব

2

মতলব, 27 বাইট

এটি একটি বেনামে ফাংশন যা xসহকগুলির pতালিকার আকারে একটি মান এবং বহুভুজ গ্রহণ করে , যেমন x^2 + 2হিসাবে চিহ্নিত করা যেতে পারে [1,0,2]

@(x,p)polyval(polyder(p),x)

2

জাভাস্ক্রিপ্ট (ES7), 40 বাইট

(a,n)=>a.reduce((t,c,i)=>t+i*c*n**--i,0)

aশূন্য অন্তর্ভুক্ত উদাহরণস্বরূপ x ³-5 দ্বারা প্রতিনিধিত্ব করা হবে সহ আরোহণের ক্রম ক্রমের সহগের একটি অ্যারে [-5, 0, 0, 1]


2

স্যাটেলিক ম্যাথ টুলবক্স, 26 বাইট সহ ম্যাটল্যাব

@(p,x)subs(diff(sym(p)),x)

এটি একটি বেনামী ফাংশন সংজ্ঞায়িত করে। ইনপুটগুলি হ'ল:

  • pবিন্যাসে বহুপদী সংজ্ঞায়িত একটি স্ট্রিং'4*x^3-2*x^4+5*x^10'
  • একটি সংখ্যা x

উদাহরণ ব্যবহার:

>> f = @(p,x)subs(diff(sym(p)),x)
f = 
    @(p,x)subs(diff(sym(p)),x)

>> f('4*x^3-2*x^4+5*x^10', 19)
ans =
16134384838410

আপনি @(x,p)polyval(polyder(p),x)একটি বাইট পেতে ক্রম ব্যবহার করতে পারেন ।
flawr

@ ফ্লোর ওয়েল, এখনই তার উচিত নয় কারণ আপনি কেবল উত্তর হিসাবে পোস্ট করেছেন; পি
অ্যালেক্স এ।

@ ফ্লোয়ার ধন্যবাদ, তবে এটি খুব আলাদা, আপনার এটি পোস্ট করা উচিত!
লুইস মেন্ডো

1
ঠিক আছে আমি মনে করি আপনি যেভাবেই এটি করতে পারতেন না, কারণ আপনি বাইট = ডি অর্জন করতে চান
flawr

নিবন্ধন করুন আমি পুরোপুরি ভুল বুঝেছি, হাহা
লুইস মেন্ডো

2

আর, 31 27 বাইট

নামবিহীন দুটি ইনপুট গ্রহণ ফাংশন pএবং xpবহুবর্ষের একটি আর-এক্সপ্রেশন হিসাবে ধরে নেওয়া হয় (নীচে উদাহরণ দেখুন) এবং xএটি কেবল মূল্যায়নের মূল বিষয়।

function(p,x)eval(D(p,"x"))

এটি Dপ্রতীকী ডেরিভেটিভ আর্টকে গণনা করে xএবং এতে প্রকাশের মূল্যায়ন করে callingx

উদাহরণ আউটপুট

ধরে নিই যে ফাংশনটির নামকরণ হয়েছে fএটি নিম্নলিখিত উপায়ে বলা যেতে পারে:

f(expression(4*x^3-2*x^4+5*x^10),19)
f(expression(0*x^4),400)
f(expression(4*x^0+5*x^1),-13)
f(expression(4.14*x^4+48*x^2),-3)
f(expression(1*x^3-5*x^0),5.4)

যা যথাক্রমে উত্পাদন করে:

[1] 1.613438e+13
[1] 0
[1] 5
[1] -735.12
[1] 87.48

আমাকে এটি দেখানোর জন্য ধন্যবাদ! আমি একটি অভিব্যক্তি হিসাবে ইনপুট থাকার সম্ভাবনা বিবেচনা করি নি - এটি সত্যিই মার্জিত সমাধান।
rturnbull


2

সি ++ 14, 165 138 133 112 110 বাইট

জেনেরিক ভারিয়াদিক ল্যাম্বদা অনেক কিছু সাশ্রয় করে। -2 বাইট #importআগে এবং স্থান মুছে ফেলার জন্য<

#import<cmath>
#define A auto
A f(A x){return 0;}A f(A x,A a,A b,A...p){return a*b*std::pow(x,b-1)+f(x,p...);}

Ungolfed:

#include <cmath>

auto f(auto x){return 0;}

auto f(auto x,auto a,auto b,auto...p){
    return a*b*std::pow(x,b-1)+f(x,p...);
}

ব্যবহার:

int main() {
 std::cout << f(19,4,3,-2,4,5,10) << std::endl;
 std::cout << f(400,0,4) << std::endl;
 std::cout << f(-13,4,0,5,1) << std::endl;
 std::cout << f(-3,4.14,4,48,2) << std::endl;
 std::cout << f(5.4,1,3,-5,0) << std::endl;
}

আপনি আপনার সমস্ত বাইট গণনা অতিক্রম করেছেন বলে মনে হচ্ছে। আসল বাইট গণনা, তাহলে?
নম্বরমানিয়াক

1
@ সংখ্যামারাক ধন্যবাদ, সম্পন্ন।
কার্ল ন্যাপফ

1

হাস্কেল, 33 বাইট

f x=sum.map(\[c,e]->c*e*x**(e-1))

ব্যবহার:

> f 5.4 [[1, 3], [-5, 0]]
87.48000000000002

1

ডিসি, 31 বাইট

??sx0[snd1-lxr^**ln+z2<r]srlrxp

ব্যবহার:

$ dc -e "??sx0[snd1-lxr^**ln+z2<r]srlrxp"
4.14 4 48 2
_3
-735.12

0

DASH , 33 বাইট

@@sum(->@* ^#1- :1#0 1(sS *)#0)#1

ব্যবহার:

(
  (
    @@sum(->@* ^#1- :1#0 1(sS *)#0)#1
  ) [[4;3];[_2;4];[5;10]]
) 19

ব্যাখ্যা

@@                             #. Curried 2-arg lambda
                               #. 1st arg -> X, 2nd arg -> Y
  sum                          #. Sum the following list:
    (map @                     #. Map over X
                               #. item list -> [A;B]
      * ^ #1 - :1#0 1(sS *)#0  #. This mess is just A*B*Y^(B-1)
    )#1                        #. X

0

স্কালা, 46 বাইট

s=>i=>s map{case(c,e)=>c*e*math.pow(i,e-1)}sum

ব্যবহার:

val f:(Seq[(Double,Double)]=>Double=>Double)=
  s=>i=>s map{case(c,e)=>c*e*math.pow(i,e-1)}sum
print(f(Seq(4.0 → 3, -2.0 → 4, 5.0 → 10))(19))

ব্যাখ্যা:

s=>                        //define an anonymous function with a parameter s returning
  i=>                        //an anonymous function taking a paramater i and returning
    s map{                   //map each element of s:
      case(c,e)=>              //unpack the tuple and call the values c and e
        c*e*math.pow(i,e-1)    //calculate the value of the first derivate
    }sum                      //take the sum

0

অ্যাক্সিয়াম 31 বাইট

h(q,y)==eval(D(q,x),x,y)::Float

ফলাফল

 -> h(4*x^3-2*x^4+5*x^10, 19)
     161343 84838410.0

 -> h(4.14*x^4+48*x^2, -3)
     - 735.12

0

পাইথন 2, 39 বাইট

lambda p,x:sum(c*e*x**~-e for c,e in p)

lambdaফাংশন দুটি ইনপুট লাগে, pএবং xpবহুবচনটি, প্রশ্নের মধ্যে দেওয়া উদাহরণ বিন্যাসে দেওয়া হয়। xপরিবর্তনের হার সন্ধান করার জন্য এটি এক্স-মান।



0

সি, 78 বাইট

f(int*Q,int*W,int S,int x){return Q[--S]*W[S]*pow(x,W[S]-1)+(S?f(Q,W,S,x):0);}

0

Clojure, 53 বাইট

#(apply +(for[[c e]%](apply * c e(repeat(dec e)%2))))

বহুপদী একটি হ্যাশ-মানচিত্র হিসাবে প্রকাশ করা হয়, কীগুলি সহগ এবং মান হ'ল এক্সপোজার হয়।


0

ক্যাসিও বেসিক, 16 বাইট

diff(a,x)|x=b

ইনপুটটি বিবেচনায় বহুত্বীয় হওয়া উচিত x। কোডের জন্য ১৩ বাইট, প্রবেশের জন্য +3 বাইটa,b পরামিতি হিসাবে ।

কেবল aসম্মানের সাথে অভিব্যক্তি পাওয়া যায় x, তারপরে সাবস করুন x=b


0

ডায়ালগ এপিএল, 26 25 23 বাইট

{a←⍺⋄+/{×/⍵×a*2⌷⍵-1}¨⍵}

বহিরাগতকে ডান আর্গুমেন্ট এবং বাম আর্গুমেন্ট হিসাবে মান হিসাবে নিয়ে যায়।

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