ইতিমধ্যে একটি সংক্ষিপ্ত গাণিতিক এক্সপ্রেশন সংক্ষিপ্ত করুন


15

একবারের জন্য, আমি কিছু বাস্তব কাজ করছিলাম, পুরাতন কোডটি আপডেট করেছিলাম এবং এমন একটি অভিব্যক্তিতে ঘুরপাক খাচ্ছিলাম যা ভাল পুরানো ফ্যাশন গণিতে + x + e x হিসাবে লেখা হবে equivalent আমি ভেবেছিলাম যে আমি (এপিএল) আমি যে ভাষায় কাজ করি তাতে এটি লেখার চেয়ে এটি আরও ছোট লেখা সম্ভব হবে, এবং তাই এই খুব সহজ চ্যালেঞ্জটি উপস্থাপন করুন:

এমন কোনও ফাংশন বা প্রোগ্রাম লিখুন যা (যে কোনও উপায়ে) শূন্য বা তার বেশি সংখ্যক গ্রহণ করে এবং প্রদত্ত সংখ্যার প্রতিটি জন্য x = প্রতিটি ফলাফলের জন্য কমপক্ষে 3 টি উল্লেখযোগ্য সংখ্যার জন্য উপরের অভিব্যক্তির ফলাফল প্রদান করে (কোনও উপায়ে) ।

আপনার ভাষায় যদি π এবং / অথবা না থাকে তবে 3.142 এবং 2.718 মানটি ব্যবহার করুন।

স্কোরিং হ'ল বাইটের সংখ্যা, তাই আপনার উত্তরটি প্রিফেস করুন # LanguageName, 00 bytes

স্ট্যান্ডার্ড লুপ-হোল অনুমোদিত নয়।


সম্পাদনা: এখন যে সমাধানটি আমি নিয়ে এসেছি ○+*, তা পাওয়া গেছে । মূল কোডটি ছিল (○x)+*x


5
ইনপুটগুলি কোন ডোমেন থেকে নেওয়া হয়? পূর্ণসংখ্যা, বাস্তব, জটিল সংখ্যা?
মার্টিন ইন্ডার

1
@ মার্টিনব্যাটনার আপনি যা খুশি তাই যতক্ষণ আউটপুট পূর্ণসংখ্যার মধ্যে সীমাবদ্ধ থাকবে না।
অ্যাডম

উত্তর:


21

ডায়ালগ এপিএল, 3 টি অক্ষর

স্বচ্ছ বাক্য হিসাবে।

○+*

মোনাডিক তার যুক্তিকে with দিয়ে বহুগুণ করে, মোনাডিক হ'ল ঘনিষ্ট *ফাংশন exp। সমান ○+*যে একটি ট্রেন (○+*)ωহয় (○ω)+(*ω)। যেহেতু এটি এপিএল, বাক্যাংশটি স্বেচ্ছাসেবী আকারের যুক্তিগুলির জন্য কাজ করে। ছ। আপনি নির্বিচারে দৈর্ঘ্যের একটি ভেক্টর পাস করতে পারেন।

একই সমাধান হিসেবে জে সম্ভব o.+^সঙ্গে o.হচ্ছে এবং ^হচ্ছে *


:-) ওপিতে "সম্পাদনা:" দেখুন।
অ্যাডম

সুতরাং, আমি ভুল করে আপনাকে ভোট দিয়েছি এবং কেবলমাত্র উপলব্ধি হয়েছি। কিছু ছোটখাটো সম্পাদনা করার কথা মনে হচ্ছে যাতে আমি এটি পরিবর্তন করতে পারি?
ankh-morpork

পছন্দ করেছেন
FUZxxl

30

ইমোটিনমিকন, 48 বাইট / 13 টি অক্ষর

আমি এটি করি, এটি সংক্ষিপ্ত হওয়ার কারণে নয়, তবে এটি মজাদার। এখানে চেষ্টা করুন।আপনাকে এটি টেক্সটবক্সে + কপি করতে হবে।

😼⏪🆙😦✖😎😿➕😨😼🆙😄⏩

ব্যাখ্যা:

😼  ⏪   🆙  😦  ✖   😎  😿  ➕   😼  🆙  😄  ⏩   explanation
😼                                              take numeric input
    ⏪                                           open loop
        🆙                                      duplicate top of stack
            😦                                  push pi
                ✖                               multiply top two elements on stack
                    😎                          reverse stack
                        😿                      pop N, push e^N
                            ➕                   add top two elements on stack
                                😼              take numeric input
                                    🆙          duplicate top of stack
                                        😄      pop N, push N+1
                                            ⏩   close loop

এখানে প্রোগ্রামটি তার স্থানীয় পরিবেশে, মোবাইল ফোনটিতে রয়েছে: চিত্র


1
অবশ্যই সবচেয়ে বিনোদনমূলক অভিব্যক্তি।
অ্যাডম

7
লোল, একটি বিড়াল cat?
জিওকাভেল

3
আমি এই ভাষা চাই।
ফারাজ মাসরুর

2
আমি মনে করি আপনি বলতে পারেন যে তিনি সাব- এক্সপ্রেশন ব্যবহার করেছেন । (• _ •) (• _ •)> ⌐ ■ - ■ (⌐ ■ _ ■)
অ্যাডিসন

9

আর, 25 24 বাইট

cat(exp(x<-scan())+pi*x)    

এটা কি? এটি ব্যবহারকারীর কাছ থেকে ইনপুট পায়, এটাকে অ্যাসাইন করে x, এতে তার এক্সপেনশিয়াল গুণকে এটি গণনা করেpi এবং শেষ পর্যন্ত cat()ফলাফল মুদ্রণ করে।

সম্পাদনা: অ্যালেক্স এ-কে ধন্যবাদ 1 বাইট


1
আমার কাছে ঠিক দেখাচ্ছে
অ্যাডম

2
24 বাইট:cat(exp(x<-scan())+pi*x)
অ্যালেক্স এ

এক্ষেত্রে আপনাকে <-আমার পরামর্শ মতো করে ব্যবহার করতে হবে বরং এর পরিবর্তে ভেরিয়েবলটি বরাদ্দ না =করার কারণে এটি xযুক্তি expনির্ধারণ করে x। একটি নতুন সেশনে বর্তমান কোড ব্যর্থ হবে।
অ্যালেক্স এ।

7

জাভাস্ক্রিপ্ট (ES6), 39 34 বাইট

@ Edc65 ধন্যবাদ 5 বাইট সংরক্ষণ করা

a=>a.map(x=>x*Math.PI+Math.exp(x))

সংখ্যার অ্যারে হিসাবে ইনপুট নেয় এবং একই ফর্ম্যাটে আউটপুট।

হ্রাস করার জন্য ধন্যবাদ, এখন তিনটি সমতুল্য 45-বাইট প্রোগ্রাম রয়েছে, সমস্ত ES5- অনুগত:

for(;x=prompt();)alert(x*Math.PI+Math.exp(x))
for(M=Math;x=prompt();)alert(x*M.PI+M.exp(x))
with(Math)for(;x=prompt();)alert(x*PI+exp(x))

ইনপুটগুলি একবারে একবারে প্রবেশ করাতে হবে। ছাড়ার জন্য কিছু প্রবেশ না করেই ওকে টিপুন।

তৃতীয়টি জেএস-এর একটি আকর্ষণীয় বৈশিষ্ট্য তুলে ধরে: withবিবৃতিটি। কখনও কখনও ব্যবহারে অনিরাপদ থাকাকালীন (এইভাবে কঠোর মোডে অক্ষম করা হয়), তবুও যখনই আপনার অ্যাক্সেসের প্রয়োজন হয় তখন কোনও বস্তুর নাম এবং সময়কাল টাইপ করে সংরক্ষণ করতে এটি ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি এটি করতে পারেন:

x=[];with(x)for(i=0;i<5;i++)push(length);

pushএবং lengthতারপরে বৈশিষ্ট্য হিসাবে ব্যবহৃত হয় x, যার ফলশ্রুতি xসত্ত্বেও ঘটে [0,1,2,3,4]

এটি কোনও বস্তু এমনকি অ-ভেরিয়েবলগুলিতেও কাজ করে, উদাহরণস্বরূপ, আপনি এটি করতে পারেন:

with("0123456789ABCDEF")for(i=0;i<length;i++)alert("0x"+charAt(i)-0);

charAtএবং lengthস্ট্রিং এর বৈশিষ্ট্য হিসাবে ডাকা হয়। একটি হেক্স মান থেকে একটি সংখ্যায় "0x"+x-0রূপান্তর করে x, তাই alertএটি 0 থেকে 15 এর মধ্যে সংখ্যাগুলি।


1
M.pow(M.E,x)হয় M.exp(x)দ্বারা সংজ্ঞা
edc65

@ edc65 আমার শিখতে হবে আমার Math;) ধন্যবাদ!
ETH প্রোডাকশন

আমি জানতাম না withহতাশ হয়েছে।
কনর ও'ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ আমার খারাপ; এটি অবহেলিত নয়, তবে এড়ানো অত্যন্ত পরামর্শ দেওয়া হচ্ছে
ETH প্রোডাকশনগুলি

মনে পড়ছে এটাই। ^ _ ^ আমি এটি <canvas>রেন্ডারিং এবং (অবশ্যই) গল্ফিংয়ে যাইহোক ব্যবহার করি ।
কনর ও'ব্রায়েন

6

গণিত, 11 10 বাইট tes

N@Pi#+E^#&

1 বাইট সংরক্ষিত সঙ্গে LegionMammal978 ধন্যবাদ।


এটি বর্তমানে কাজ করে না। তবে, 10 বাইটের জন্য:1.Pi#+E^#&
লেজিয়ানম্যামাল 978

#এবং এর মধ্যে একটি জায়গা অনুপস্থিত ছিল Pi। এটি Pi#জায়গায় ব্যবহার করে সমাধান করা হয় #Pi। এছাড়াও, Nশুধুমাত্র Pi#সম্পূর্ণ এক্সপ্রেশন নয়, এ প্রয়োগ করা দরকার ।
ডেভিডসি

6

পাইথ, 11 13

VQ+*N.n0^.n1N

এখন xএকটি তালিকা হিসাবে গ্রহণ করে , যেমন[1.25, 2.38, 25]

পূর্ববর্তী (11 বাইট): +*Q.n0^.n1Q

VQ            +       * N .n0            ^ .n1 N
For each      Add     List Item * Pi     e ^ List Item
input item

আমি যখন অনলাইন দোভাষী দিয়ে এটি চেষ্টা করি তখন এটি কেবল একটি সংখ্যার জন্য কাজ করে। অথবা ইনপুট ফর্ম্যাটটি কী? স্পেসিফিকেশনটি বলে যে ইনপুটটি "শূন্য বা ততোধিক সংখ্যা", এবং "প্রদত্ত প্রতিটি সংখ্যার" জন্য অভিব্যক্তিটি মূল্যায়ন করতে হয়।
রেটো কোরাডি

@ রিটোকোরাদি আপনি "টেস্ট স্যুইটে স্যুইট" বাক্সটি পরীক্ষা করে একাধিক সংখ্যার (পৃথক লাইনে) চালাতে পারেন। আমি নিশ্চিত নই যে এটির অনুমতি এখনই আপনি উল্লেখ করেছেন।
আমেরিকার হরিণবিশেষ

5

সিরিয়াসলি, 10 বাইট

,`;e(╦*+`M

হেক্স ডাম্প:

2c603b6528cb2a2b604d

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

ইনপুটগুলি একটি তালিকা হিসাবে গ্রহণ করে (উদাহরণ হিসাবে লিঙ্ক দেখুন)।

ব্যাখ্যা:

,                               Get input list
 `      `M                      Map this function over it
  ;                             Copy the input value.
   e                            exponentiate
    (                           dig up the other copy
     ╦*                         multiply by pi
       +                        add


5

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

πAns+e^(Ans

টিআই-বেসিক এএসসিআইআই বাইট ব্যবহার করে না, সুতরাং এগুলির প্রতিটি ক্যালকুলেটরে একটি বাইট হিসাবে সংরক্ষণ করা হয়: π , Ans, +, e^(, এবং Ans। এটি ধরে নিয়েছে পূর্বের এক্সপ্রেশনটি হ'ল ইনপুট (মত {1,2,3})।


5

পাইথন 2, 38 বাইট ( 52 49 বাইট ডাব্লু গণিত)

lambda l:[3.142*x+2.718**x for x in l]

যদি আমাকে গণিতের মডিউল ব্যবহার করতে হয়:

from math import*
lambda l:[pi*x+e**x for x in l]

ইনপুট সংখ্যার একটি তালিকা হওয়া উচিত

f([1,2,3,4,5])

> [5.8599999999999994, 13.671524, 29.505290232, 67.143510850576007, 164.04623849186558]

2
If your language does not have π and/or e, use the values 3.142 and 2.718.... পাইথন হয়েছে piএবং eএর মধ্যে mathমডিউল।
জ্যাচ গেটস

@ জাচগেটস গণিত মডিউল সহ একটি সংস্করণ যুক্ত করেছে।
TFeld

আপনি mathসমাধানটি ব্যবহার করে 3 বাইট সংরক্ষণ করতে পারেনfrom math import*
wnnmaw

@nnmaw ধন্যবাদ!
টিফিল্ড

আপনি for x in l:lambda l:pi*x+e**xউভয় উত্তরের বোধগম্যতার পরিবর্তে অন্যকে শেভ করতে পারেন
wnnmaw

4

MATL , 9 বাইট

এই উত্তরটি ভাষার বর্তমান সংস্করণ ( 3.1.0 ) ব্যবহার করে, যা চ্যালেঞ্জের চেয়ে আগের earlier

itYP*wZe+

ইনপুট হ'ল একটি ভেক্টর যা সমস্ত সংখ্যার (বর্গাকার বন্ধনীর দ্বারা তালিকাভুক্ত এবং স্পেস দ্বারা পৃথক, সেমিকোলনের কমা) তালিকাভুক্ত, [5.3 -7 3+2j] । জটিল মান অনুমোদিত। আউটপুট 15 টি উল্লেখযোগ্য সংখ্যা আছে।

উদাহরণ

>> matl itYP*wZe+
> [1 2 3]
5.859874482048839 13.67224140611024 29.51031488395705

ব্যাখ্যা

সোজা অপারেশন:

i       % input  
t       % duplicate 
YP      % pi   
*       % multiplication
w       % swap elements in stack                           
Ze      % exponential                                      
+       % addition 

4

ম্যাটল্যাব: 70 বাইট

@(x)num2str(arrayfun(@(x)(round(pi*x+exp(x),2-floor(log10(pi*x+exp(x))))),x))

টেস্ট:

ans(1:10)
5.86            13.7            29.5            67.2             164             422            1120            3010            8130           22100

ব্যাখ্যা: সংখ্যা বিন্যাসকরণে বেশ কয়েকটি সমস্যা ছিল।

প্রথমত, প্রশ্নের জন্য 3 টি সিগ-ডুমুর প্রয়োজন। মাতলাব সিগ-ডুমুর দ্বারা গোল করার জন্য কোনও বিল্ট-ইন ফাংশন নেই (কেবলমাত্র দশমিক স্থানে), সুতরাং নিম্নলিখিত কাজের প্রয়োজন ছিল:

floor(log10(pi*x+exp(x)))) বৃহত্তম উল্লেখযোগ্য অঙ্ক গণনা।

@(x)(round(pi*x+exp(x),2-floor(log10(pi*x+exp(x))))),x))ইনপুট xএবং রাউন্ডটি 3 টি গুরুত্বপূর্ণ অঙ্কে নিয়ে যায়।

আর একটি প্রয়োজন ছিল একাধিক ইনপুট পরিচালনা করা। উপরের কোডটি কেবল একক সংখ্যা দিয়ে কাজ করতে পারে। এটি প্রশমিত করতে, আমরা arrayfunপ্রতিটি ভেক্টর উপাদানগুলির জন্য ফাংশনটি মূল্যায়ন করতে ব্যবহার করি ।

শেষ সমস্যাটি, মতলব তার নিজস্ব বৃত্তাকারের সাথে অ্যারেফুনের ফলাফল প্রদর্শন করে 1.0e+04 * 0.0006যা ফলাফলগুলিকে 3 সিগ-ডুমুর প্রয়োজনীয়তা লঙ্ঘন করে এমন আউটপুট বাড়ে । সুতরাং, বিন্যাসে num2strঅ্যারে পরিণত করতে ব্যবহৃত হয়েছিল char

মতলব সংখ্যা বিশ্লেষণের জন্য ভাল, তবে সত্যি বলতে গেলে সূক্ষ্ম সংখ্যার ফর্ম্যাটিংয়ের ক্ষেত্রে এটি সফল হয়

ইউপিডি: ঠিক আছে, আমি বিব্রতকর যে আমি বিভ্রান্ত

কমপক্ষে 3 উল্লেখযোগ্য সংখ্যা সহ

সঙ্গে

3 উল্লেখযোগ্য সংখ্যা সহ

যাইহোক, আমি এই ফর্মটিতে আমার উত্তরটি রেখে দেব কারণ 15 বাইট মাতলাব সমাধান ইতিমধ্যে @ কোস্ট্রাম দ্বারা দেওয়া হয়েছে


2
কি?! কেন সব করতে হবে?
অ্যাডম

4
এই কোড-বোলিং হয়?
স্টিভি গ্রিফিন

আমি উত্তরের জন্য ব্যাখ্যা যুক্ত করব
ব্রেকিংজ

1
এটি শুধুমাত্র বলে ন্যূনতম 3 স্বাক্ষর ডুমুর, না ঠিক 3. যদি আপনি উল্লিখিত format longgকোড চালানোর আগে প্রয়োজন ছিল, আপনি 3/4 দৈর্ঘ্য এখানে ড্রপ চাই
costrom

@ কোস্ট্রাম হ্যাঁ, আপনি ঠিক বলেছেন, এবং আমি স্বীকার করেছি যে আপনি জিতলেন :)
ব্রেকিঙ্ক

4

জুলিয়া, 12 বাইট

x->π*x+e.^x

এটি একটি বেনামে ফাংশন যা একটি অ্যারে গ্রহণ করে এবং একটি ভাসমান অ্যারে প্রদান করে। এটি কল করার জন্য, এটির একটি নাম দিনf=x->...

জুলিয়া অন্তর্নির্মিত ধ্রুবক রয়েছে πএবং eআপনি যথাক্রমে এটি অনুমান করেছেন — e এবং ই। .^অপারেটর exponentiation ভেক্টরকৃত করা হয়।


3

জাপট, 12 বাইট

N®*M.P+M.EpZ

স্থান-বিভাজিত সংখ্যা হিসাবে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

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

N®   *M.P+M.EpZ
NmZ{Z*M.P+M.EpZ

        // Implicit: N = array of inputs, M = Math object
NmZ{    // Map each item Z in N to:
Z*M.P+  //  Z times PI, plus
M.EpZ   //  E to the power of Z.
        // Implicit: output last expression

আপনি 5,554 জন প্রতিনিধি থাকাকালীন আমি আপনাকে উজ্জীবিত করতে ঘৃণা করি।
কনর ও'ব্রায়েন

3

জে, 4 বাইট

o.+^

এপিএল হিসাবে একই ○+*, তবে জে এর pi timesফাংশন বলা হয় o., যা এক বাইট দীর্ঘ হয়।



2

পার , 8 বাইট

✶[″℗↔π*+

হিসাবে ইনপুট গ্রহণ করে (1 2 3)

ব্যাখ্যা

               ## [implicit: read line]
✶              ## Parse input as array of numbers
[              ## Map
 ″             ## Duplicate
 ℗             ## e to the power
 ↔             ## Swap
 π*            ## Multiply by π
 +             ## Add


2

সিজেম, 13 বাইট

q~{_P*\me+}%p

ফাঁকা স্থান (যেমন [1 2 3]) দ্বারা পৃথক করা অ্যারের হিসাবে ইনপুট নেয় । এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা

q~    e# Read the input and evaluate it as an array
{     e# Do this for each number x in the array...
  _P* e# Multiply x by pi
  \me e# Take the exponential of x (same as e^x)
  +   e# Add the two results together
}%
p     e# Pretty print the final array with spaces

@ এনবিজেড হয়েছে, স্পষ্ট করার জন্য ধন্যবাদ।
নিনজা বিয়ারমনেকি

1

রেং v.3.3, 53 বাইট

নন-কেপেটিং কারণ এটি চ্যালেঞ্জ পোস্টডেট করে, কিন্তু ওহে, ব্রিভিটির জন্য কোনও পুরষ্কার জিতেনি। : পি এখানে চেষ্টা করে দেখুন!

2²5³*:"G"(%3+i#II*ZA*9+(%2+#E1II0e1+ø
1-)E*(:0eø
$+n~

লাইন 0

এখানে লাইনে 0 স্ট্যাকের একটি দৃশ্য:

Sequence read | Stack
2²            | 4
5³            | 4 125
*             | 500
:             | 500 500
"G"           | 500 500 71
(             | 500 71 500
%             | 500 0.142
3+            | 500 3.142
i             | 500 3.142 <i>
#I            | 500 3.142     ; I <- i
I             | 500 3.142 <i>
*             | 500 3.142*<i>
ZA            | 500 3.142*<i> 35 10
*             | 500 3.142*<i> 350
9+            | 500 3.142*<i> 359
(             | 3.142*<i> 359 500
%             | 3.142*<i> 0.718
2+            | 3.142*<i> 2.718
#E            | 3.142*<i>     ; E <- 2.718
1II0          | 3.142*<i> 1 <i> <i> 0
e             | 3.142*<i> 1 <i> <i>==0
1+            | 3.142*<i> 1 <i> (<i>==0)+1

øতারপরে পরবর্তী Nth লাইনে যায়। 0ইনপুট কখন হয়, এটি সরাসরি লাইন ২ এ যায় Otherwise

লাইন 1

1-)E*(:0eø

এটি E iগুণ করে, যা হয় e^i। আমরা কাউন্টারটি (প্রাথমিকভাবে I) হ্রাস করি , স্টোরকে (আমাদের চলমান eশক্তি) ই দ্বারা গুণিত করি , কাউন্টারে ফিরে যাই এবং এটি ( i'বর্তমান কাউন্টার):

Sequence read | Stack (partial)
              | i'
:             | i' i'
0             | i' i' 0
e             | i' i'==0

øতারপরে দুটি জিনিসের একটি করে। যদি কাউন্টার 0 না হয়, তবে আমরা "পরবর্তী" 0 তম লাইনে চলে যাই, বর্তমান লাইনের শুরুতে। যদি এটি শূন্য হয়, তবে0e 1 প্রদান করে এবং পরবর্তী লাইনে যায়।

লাইন 2

$+n~

$কাউন্টার ড্রপ (ফ্লোর অন!)। +শীর্ষ দুটি ফলাফল যুক্ত করে, nসেই সংখ্যাটি আউটপুট করে এবং ~প্রোগ্রামটি সরিয়ে দেয়।

কেস 1: ইনপুট 0 টি। টিওএস 1 ("ই ^ 0") এবং স্টোস 0 (পাই * 0) হয়। তাদের যুক্ত করা সঠিক ফলাফল দেয়।

কেস 2: ইনপুটটি 0 নয় The ফলাফলটি আপনার প্রত্যাশার মতো।

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