অভিব্যক্তি সিগমাফ করুন


20

যারা জানেন না তাদের জন্য সিগমা হ'ল একটি গ্রীক অক্ষর যা অঙ্কের চিহ্ন হিসাবে গণিতে খুব বেশি ব্যবহৃত হয়। একটি স্ট্রিং উপর নির্ভর করে একটি অভিব্যক্তি প্রতিনিধিত্বমূলক দেওয়া যে আমরা নির্দেশ করবে , এর জন্য ফলাফল এর সমষ্টি গনা , প্রতিটি জন্য । সংক্ষিপ্তভাবে, আপনার উচিত যে:( ) ( ) { 1 , 2 , 3 , 4 , 5 } এস()(){1,2,3,4,5}এস

এস=Σ=15()

একটি অভিব্যক্তির উদাহরণ:()=2+ +2


চশমা

  • আপনি গ্যারান্টিযুক্ত:
    • যে অভিব্যক্তিটি বৈধ, তাই এতে কোনও ত্রুটি নেই এবং এটি বেছে নেওয়া সিনট্যাক্সের উপর নির্ভর করে (যেমন: আপনি যদি কেবল সমর্থন করেন 2*kতবে কোনও হবে না 2k)
    • একমাত্র আপনার ফলাফল মধ্যে মান সংজ্ঞায়িত করেছেন, তাই কোনও মান পছন্দ 1/0, infবা nanউপস্থিত হবে
  • আপনি ধরে নিতে পারেন যে উপরের অভিব্যক্তিটি আপনার পছন্দসই প্রোগ্রামিং ভাষার সীমাবদ্ধ করে তুলছে, সুতরাং এটি ওভারফ্লো বা অন্য কোনও সীমা-সম্পর্কিত ত্রুটির ফলশ্রুতি করবে না
  • পরিবর্তে অন্য যে কোনও অ-শ্বেতস্থান ASCII অক্ষর kচয়ন করা যেতে পারে
  • আপনার প্রোগ্রাম অবশ্যই নিম্নলিখিত ক্রিয়াকলাপ সমর্থন:
    • উপরন্তু ( +, plus(), add(), sum())
    • বিয়োগ ( -, minus(), subtract())
    • exponentiation ( **, ^, pow()অথবা অন্যদের, নির্ধারণ করা উচিত), নেতিবাচক ঘাঁটি এবং ব্যাখ্যামূলক সমর্থন সঙ্গে
    • আকারে বর্গমূল sqrt(k), k^0.5, k**0.5, অথবা কিন্তু অন্য ইচ্ছা
    • গুণ এবং বিভাগ
  • জমাটি একটি সম্পূর্ণ প্রোগ্রাম বা কোনও ফাংশন হতে পারে, এর ব্যবহারের উল্লেখ করার সময়
  • আউটপুট দেওয়ার সময় যেকোনও পিছনের / শীর্ষস্থানীয় সাদা স্থানের অনুমতি দেওয়া হয়
  • সর্বনিম্ন নির্ভুলতা: 2 দশমিক স্থান

পরীক্ষার কেস (সহ k)

+---------------+--------------+   
|  Input = E(k) |    Output    |
|---------------+--------------|
|2*k            | 30           |
|---------------+--------------|
|sqrt(k)        | 8.38         | (* with minimum decimal precision)
|---------------+--------------|
|k+k/2+k**2     | 77.5         |
|---------------+--------------|
|k**2           | 55           |
+---------------+--------------+

স্কোরটি বাইটের সংখ্যা হবে (উত্স + সংকলক পতাকাগুলির)। সর্বনিম্ন স্কোরিং বৈধ জমা জিতেছে, এই লুপোলগুলি কঠোরভাবে নিষিদ্ধ রয়েছে তা নোট গ্রহণের সময় । বিষয়গুলি পরিষ্কার করার জন্য এখানে একটি পাইথন সিউডো কোড রয়েছে।


আমরা কি এর plus()পরিবর্তে নিতে পারি +? (অন্যান্য অপারেটরগুলির জন্যও একই প্রশ্ন)
স্টিভি গ্রিফিন

@StewieGriffin হ্যাঁ, plus(), add(), sum()এবং সমতুল অনুমতি দেওয়া হয়। সম্পাদনা দেখুন।
মিঃ এক্সকোডার

না, আপনি কেবল একবারই এই অভিব্যক্তিটি গ্রহণ করতে পারেন, @ কমরেডস্পার্কলপনি
মিঃ এক্সকোডার

আমরা কি পোস্টফিক্স স্বরলিপি ব্যবহার করতে পারি? : উদাহরণস্বরূপ, শীর্ষ থেকে পরীক্ষা ক্ষেত্রে 3 ভালো কিছু হবে N N2/+N2**+
কমরেড স্পার্কলপনি

এটি খুব অদ্ভুত, তবে যতক্ষণ আপনি পরিষ্কারভাবে E(x)@ কমরেড স্পার্কলপোনির "ফর্ম্যাট" বর্ণনা করেছেন
ম্যাক্স এক্সকোডার

উত্তর:


3

জেলি , 5 বাইট

vЀ5S

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

একটি বৈধ জেলি মোনাডিক চেইন ইনপুট করুন (আমি তাদের আমার লিঙ্কে গল্ফড করেছি)।

কিভাবে এটা কাজ করে

vЀ5S
 Ѐ     for each of ...
   5        5 (implicitly converted to [1,2,3,4,5]), ...
v           evaluate the input with the above as argument
    S   and find the sum

9

গণিত, 17 14 13 বাইট

ইয়ান মিলারকে 3 বাইট বাঁচানোর জন্য ধন্যবাদ

1 বাইট সংরক্ষণের জন্য লেজিয়ানম্যামাল978কে ধন্যবাদ।

#~NSum~{k,5}&

ইনপুটটি একটি আসল প্রকাশযুক্ত হওয়া উচিত k, উদাহরণস্বরূপ:

#~NSum~{k,5}&[Sqrt[k]^3+4]

2
আমার অনুমান করা উচিত ছিল যে ম্যাথামেটিকার জন্য এটি অন্তর্নির্মিত ছিল
মিঃ এক্সকোডার

2
গণিতের সবসময় পরিস্থিতির জন্য বিল্ট-ইন থাকে। : পি
সম্পূর্ণরূপে

আপনার 1,এটির জন্য দরকার নেই Sum
ইয়ান মিলার

আসলে এটি সংক্ষিপ্ত হতে পারেN@#~Sum~{k,5}&
ইয়ান মিলার

@ আইয়ানমিলার অবশ্যই ঠিক আছে, অবশ্যই ধন্যবাদ!
মার্টিন ইন্ডার

8

পাইথন 3 , 40 37 বাইট

3 বাইট ধন্যবাদ আর্নল্ডকে।

এভাল স্কোপ ট্রিকস \ o /

f=lambda s,k=5:k and eval(s)+f(s,k-1)

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

k**0.5পরিবর্তে ব্যবহার করে sqrt(k)


দ্রুত কোনও প্রশ্নের উত্তর দেওয়ার অনুমতি দেওয়া আছে কি? o_O
মিঃ এক্সকোডার

7

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

k**0.5জন্য ব্যবহার করে sqrt(k)

f=(e,k=6)=>--k&&f(e,k)+eval(e)

console.log(f("2*k"))
console.log(f("k**0.5"))
console.log(f("k+k/2+k**2"))
console.log(f("k**2"))

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


আবার নিনজড! সুন্দরভাবে সম্পন্ন.
শেগি

3

05 এ বি 1 ই , 8 7 6 বাইট

6G¹.VO

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

ইনপুট পোস্টফিক্স স্বরলিপিতে রয়েছে এবং ভেরিয়েবল এন ব্যবহার করে । 05AB1E একটি স্ট্যাক-ভিত্তিক ভাষা, সুতরাং কেবল পোস্টফিক্স স্বরলিপিটি কাজ করে।

বিন্যাস E(N): আপনি যে নম্বরটি দিয়ে অপারেশন করতে চান তা লিখুন এবং তারপরে অপারেশনের চিহ্নটি লিখুন। উদাহরণস্বরূপ, 3+4হবে 3 4+, 3*4+2*3হবে 3 4* 2 3* +। এছাড়াও মনে রাখবেন যে এটি ব্যবহার করে tপরিবর্তে sqrt, এবং mপরিবর্তে **, তাই sqrt(N)হবে Nt

ব্যাখ্যা:

6G¹.VO
6G     For N in range(1,6). This includes [1,2,3,4,5].
  ¹.V  Read and eval input.
     O Sum results.

3

অষ্টাভে , 50 46 31 29 বাইট

@(d)eval(["k=1:5;sum(" d 41])

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

ক্ষুদ্রাকরণটি ক্যারেটের সাহায্যে বোঝানো হয় .^এবং এর সাথে গুণিত হয় .*

এটি বিতর্ক গ্রহণ করে এমন একটি বেনামী ফাংশন ঘোষণা করে d। এটি kপরিসরের সমান হতে সেট 1:5করে dএবং মূল্যায়নের যোগফল যোগ করে এবং এটি ফেরত দেয়।


3

জাপট , 10 বাইট

6ÆK=XOxUÃx

বড় হাতের অক্ষরের হিসাবে ইনপুট স্ট্রিংয়ের পরিবর্তনশীল হওয়া উচিত Ksqrt(K)হিসাবে ইনপুট করা উচিত K**0.5

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

ব্যাখ্যা

evalসুযোগ আমার পক্ষে কাজ করেনি; গণনা পরিবর্তনকে Xবৈশ্বিক হিসাবে নতুনভাবে সংজ্ঞা দিতে হয়েছিল K

6ÆK=XOxUÃx      // implicit: U = input string
6oXYZ{K=XOxU} x // expanded

6oXYZ{      }   // create array [0, 6) and map to function:
      K=X       //   redefine the array value to global K
         OxU    //   eval the input string
              x // sum the resulting array

হুম, আমি ভাবছি যে যদি Oxসরাসরি eval(
ট্রান্সপ্লিং


2

এপিএল (ডায়ালগ) , 9 বাইট

+/⍎⎕⊣k←⍳5

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

সংযোজনটি হ'ল +, বিয়োগফলটি হয় -, গুণ হয় ×, বিভাগটি হয় ÷এক্সপেনসিয়েশন *এবং এক্সিকিউশনটি ডান থেকে বাম হয়, সুতরাং ()গ্রুপ এক্সপ্রেশনগুলিতে ব্যবহার করুন ।

ইনপুট শর্তে k

ব্যাখ্যা

k←⍳5                    Set k to be equal to the vector 1 2 3 4 5
                       The left argument:
+/                      Sum of
⍎⎕                      The evaluated input (the eval returns an array because k is an array)

এবং এখানে যে একটি সমাধান (জেলি উত্তর মত) ইনপুট হিসাবে ট্রেন লাগে: +/(⍎⎕)¨⍳5


2

কমন লিস্প, 55 বাইট

(defun f(x)#.(read))(print(+(f 1)(f 2)(f 3)(f 4)(f 5)))

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

Example input - output: 
(* x 2) - 30 
(sqrt x) - 8.382333 
(+ (/ x 2) x (expt x 2)) - 155/2 
(expt x 2) - 55

ভিন্ন, দীর্ঘতর (58 বাইট) সংস্করণ - আপনি 1 থেকে 7-এ সুমেন্টেশন করলে সংক্ষিপ্ত হতে শুরু করে।

(print #.`(+,@(mapcar #'(lambda(x)#.(read))'(1 2 3 4 5))))

তবুও আরেকটি দীর্ঘতর পদ্ধতি ( 65 64 বাইট) - ফাংশনটি সংজ্ঞায়িত করে না - কেবল আপনার অভিব্যক্তিটিকে একটি লুপে serোকায়। বড় অঙ্কের জন্য আরও খাটো হওয়া উচিত।

(setf a(read)b 0)(loop as x from 1 to 5 do(incf b #.a))(print b)

2

সুইফ্ট, 202 184 বাইট

import Foundation;func s(i:String){print([1,2,3,4,5].map{NSExpression(format:i.replacingOccurrences(of:"k",with:"\($0).0")).expressionValue(with:nil,context:nil)as!Float}.reduce(0,+))}

কোনও কারণে এটি কেবল স্থানীয়ভাবে চলবে :(।

আমি কী করছি তার একটি ব্যাখ্যা এখানে দেওয়া হয়েছে:

import Foundation // Import the Foundation module

func s(i:String){ // Create a function that takes in a String and returns a Float

    print( // Print the result of the follow algorithm to strdout

        [1,2,3,4,5].map{ //Conduct the follow code on numbers 1 - 5

            NSExpression(format: // Create an expression with the following String and return it 

            i.replacingOccurrences(of:"k",with:"\($0).0")) // Create a string replacing all ocurrances of 'k' in `i` with the current Float from the map

           .expressionValue(with:nil,context:nil)as!Float // Get the resulting value of the expression

       }.reduce(0,+) // Add the result of all the expressions together
    )
}

@ মিঃ কে ধন্যবাদ 15 বাইট সংরক্ষণের জন্য এক্সকোডার!


2

টিআই-বেসিক, 12 বাইট

Σ(expr(Ans),K,1,5

কল করুন "string":prgmNAME, যেখানে stringকোনও বৈধ টিআই-বেসিক এক্সপ্রেশন K


একই দৈর্ঘ্যের আকর্ষণীয় সমাধান:Ans->u:sum(u(1,5
25:57

1

স্ট্যাকড , 16 বাইট

5~>[@k#~]2/"!sum

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

5~>1 থেকে 5 টির মধ্যে অন্তর্ভুক্ত নয়। 2/একটি চমত্কার dyadic তোলে, "জোড়-ভিত্তিক, এবং !কার্যকর করা হয়। এটি এইভাবে ইনপুটটির সাথে পরিসীমাটিকে মানচিত্র করে [1, 5], যা পরিসরের সদস্য হওয়ার পরে তা নির্ধারণের পরে মূল্যায়ন করা হয় k। তারপরে, ফলাফলগুলি সংক্ষিপ্ত করা হয়।


1

ডিসি , 31 24 বাইট

?sa1k[lax+Kd1+k5>p]dspxp

ইনপুটটি অবশ্যই বিপরীত-পোলিশ স্বরলিপিতে দিতে হবে (পোস্টফিক্স স্বরলিপি হিসাবে পরিচিত) এবং বর্গাকার বন্ধনীগুলিতে আবদ্ধ []থাকে:

  • Kkপরামিতি হিসাবে প্রতিস্থাপন ;
  • + প্রতিনিধিত্ব সংযোজন;
  • -বিয়োগফলকে প্রতিনিধিত্ব করে এবং _কোনও সংখ্যাকে অনুসরণ করে aণাত্মক সংখ্যার প্রতিনিধিত্ব করে;
  • * গুণকে উপস্থাপন করা;
  • / প্রতিনিধিত্বকারী বিভাগ;
  • ^ ক্ষয়ক্ষতি প্রতিনিধিত্ব;
  • v বর্গমূলের প্রতিনিধিত্ব করে।

উদাহরণস্বরূপ, -2*k+k+3*k**2+k**0.5-k/2হিসাবে ইনপুট হবে [_2K*K+K2^3*+Kv+K2/-]। এটি Kএকটি dcকমান্ড যা বর্তমান নির্ভুলতা ফেরায় (প্রাথমিকভাবে সেট করা হয়েছে 1) এর যথাযথ সুবিধা গ্রহণ করে । সুতরাং, শেষ অবধি, এটি নির্ভুলতার সাথে আউটপুট ফেরত দেয় 6

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



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