একটি "sjoelen"-খেলায় পয়েন্ট গণনা করুন


31

ঠিক আছে, তাই গতকাল ২ য় ক্রিসমাসের দিন ছিল এবং আমার (গ্র্যান্ড) পিতা-মাতার এবং "সজোলেন" খেলা ছিল, যেমন এটি নেদারল্যান্ডসে বলা হয়। অভ্যন্তরীণ প্রোগ্রামারটি আমার মধ্যে উপস্থিত হয়েছিল, তবে যখন আমি উত্তর পেয়েছিলাম তখন আমি এটি হারিয়ে ফেলেছিলাম। আমি চাই আপনি এটি পুনরায় তৈরি করুন।

নিয়ম:

আপনার কাছে একটি কাঠের তক্তা, একটি সোজেলবাক , 4 টি বাক্স, প্রতিটি তাদের নিজস্ব নম্বর সহ। যখন একটি স্কিজেফ ( একটি ছানার মতো বস্তু) একটি বাক্সে যায় আপনি সেই বাক্সের উপরে পয়েন্টগুলি পান।

_চিওভেন_ সহ একটি _সোয়েলবাক_
বাক্সের 4 টিতে যখন একটি স্কিজেফ থাকে, আপনি 10 পান না তবে আপনি 20 পয়েন্ট পান।

উদাহরণ:

বাম থেকে ডানে: 3 5 4 3
প্রতিটি বাক্সে কমপক্ষে 3 টি স্কিজেভেন ( বহুবচনের স্কিজিফ ) থাকে তাই এটি 20 * 3 = 60 পয়েন্ট।

ফলাফল মান: 0 2 1 0
0 * 2 + 2 * 3 + 1 * 4 + 0 * 1 = 10 পয়েন্ট।

যা মোট 60 + 10 = 70 পয়েন্ট করে।

ইনপুট: বাম থেকে ডানে, যেমন "4 5 4,5", [4,5,4,5], "4 5 n5 \ n4 5 n5", যা আপনার পছন্দ মত স্কিজভিনের
পরিমাণ ।

আউটপুট:
পয়েন্টগুলির পরিমাণ, যেমন 84, আউটপুট হিসাবে, ভেরিয়েবল হিসাবে, রিটার্ন করুন বা স্ট্যাকের শীর্ষে, আপনার যা পছন্দ হোক।

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

PS: আপনি ইতিমধ্যে খেয়াল করে থাকতে পারে, আমি ডাচ। সম্ভাব্য ব্যাকরণ ভুল সম্পাদনা করতে নির্দ্বিধায়।


আউটপুট কি স্টাডআউট হতে হবে বা এটি কোনও ফাংশন রিটার্ন বা স্ট্যাকের বাকী আইটেমটি (স্ট্যাক ভিত্তিক ভাষার জন্য) থাকতে পারে?
globby

@globby সব কিছু হতে পারে
চার্লি 9

আমার মনে হয় সজোলেন লিউক!
মার্ক নোল

1
প্রতিটি বাক্সে স্কিজ্ফের সংখ্যার কি সীমা আছে?
দ্য_বাসেট_হাউন্ড

@ বাসসাহাউন্ড আপনি প্রতি রাউন্ডে 30 টি স্কিজবেন পান , তাই 4 টির মধ্যে 30 টি 120 পয়েন্টের সমান। এটি সম্ভব, তবে সেরা স্কোর নয় (সব মিলিয়ে 7১০, ৪ = ১৪৮ এর মধ্যে ২)
চার্লি

উত্তর:


8

সিজেম, 23 21 20 বাইট

q~_$0=f+1m>{X):X*+}*

আমি এটি বন্ধ কিছু বাইট গল্ফ করতে সক্ষম হতে পারে।

ইনপুট মত

[3 5 4 3]

আউটপুট স্কোর হয়

70

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

q~                         "Read the input and evaluate into an array";
  _$0=                     "Copy the array, sort it and get the minimum number";
                           "This minimum is the number of common schijven";
      f+                   "Increment each of the schijven by the common schijven number"; 
        1m>                "Take 1 element from the end of the array and put";
                           "it in the beginning";
           {      }*       "Reduce the elements of the array based on this block";
            X):X           "Increment and update the value of X (initially 1)";
                *          "Multiply the number of schijven with X";
                 +         "Add it to current score";

অ্যালগরিদম

  • যেহেতু আমি সরাসরি স্কিজভেনের সংখ্যা সরিয়ে নিয়েছি, এখন স্কোর অর্ডার হয়ে যায় [1 2 3 4]
  • 1 + 2 + 3 + 4 = 10তদ্ব্যতীত, এই সত্যটি ব্যবহার করে , আমি বোনাস 10স্কোরের প্রভাব পেতে প্রতিটিটিতে কেবল সর্বনিম্ন সাধারণ স্কিজভিন যুক্ত করি ।
  • এখন যখন আমি হ্রাস করি, আমি প্রথম দিকে স্ট্যাকের মধ্যে 2 টি উপাদান পাই, প্রথমটি, যা আমি উপেক্ষা করি এটি 1প্রতিটির স্কোর সহ একটি হয়, তারপরে আমি দ্বিতীয়টি দিয়ে গুণ করি 2এবং এটি প্রথমটিতে যুক্ত করি। পরবর্তী পুনরাবৃত্তিতে, আমি বর্তমান যোগফল এবং 3স্কিজ স্কেন পাব। ইত্যাদি।

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


সর্বনিম্ন বাইট (এখনও অবধি), স্বীকৃত। ব্যাখ্যা করার জন্য ধন্যবাদ.
চার্লি

@ চার্লি আপনি এত তাড়াতাড়ি একটি উত্তর কেন গ্রহণ করবেন? উত্তর গ্রহণের আগে আপনি 1-2 সপ্তাহ অপেক্ষা করুন।
প্রোগ্রামফক্স

8

পিট, 240 (30 * 8) কোডেল, আসল কোড সহ 138

আরও ভাল দৃশ্যমানতার জন্য কোডেলের আকার 10

পিট: সজোলেন পয়েন্ট গণনা

পরীক্ষার উদাহরণ:

D:\codegolf\npiet-1.3a-win32>npiet sjoelen_point_count_cs10.png
? 3
? 5
? 4
? 3
70
D:\codegolf\npiet-1.3a-win32>npiet sjoelen_point_count_cs10.png
? 4
? 5
? 4
? 5
84

প্রবাহ প্রদর্শন:

সহজ পরিচালনা ও কমপ্যাক্ট প্রদর্শনের জন্য আমার নিজের শর্টহ্যান্ড ব্যবহার করা। এটি সাধারণ প্রোগ্রাম প্রবাহ দেখায়, কোডেলের সঠিক অবস্থানগুলি নয়।

NOP ADD DIV GRT DUP INC END
 0   +   /   >   =   c   ~
PSH SUB MOD PTR ROL OUN
 X   -   %   #   @   N
POP MUL NOT SWI INN OUC
 ?   *   !   $   n   C

1X!nnnn=5X2X@=5X2X@=5X2X@=5X1X@**
       0                        *
       0       @+5X1X@1X-4X1X@  !
       0       -             0  !
       0       X1!X1X6+*==X40000#  <--pointer if top of stack=1 (all boxes full,
       0                     0  2      add 20 points, decrement count for all boxes)
       0000-X1@X1X2-X1@X1X3-X1  X  |  pointer if top of stack=0 (not all boxes full,
                                *  V   add 2a+3b+4c+d)
           ~N++++*X4@X2X3*X3@X1X2

সম্পূর্ণ ব্যাখ্যা:

      (score=0)  a   b   c   d
      1 PSH NOT INN INN INN INN

      ..... sort and duplicate the numbers .....
**1** DUP 5 PSH 2 PSH ROL DUP 5 PSH 2 PSH ROL DUP 5 PSH 2 PSH ROL DUP 5 PSH 1 PSH ROL

      ( a*b*c*d ) (convert to boolean) 1 if all boxes are full, 0 if at least one box is empty
      MUL MUL MUL NOT NOT

      change direction if 1 (**2**)
      go straight ahead if 0 (**3**)
      PTR

      ( compress 20=4*4+4 )       (0-1=-1/ neg. roll) score+20
**2** 4 PSH DUP DUP MUL ADD 6 PSH 1 PSH NOT 1 PSH SUB ROL ADD

      (put score back to bottom of stack) ... a=a-1, b=b-1, c=c-1, d=d-1 ...
      5 PSH 1 PSH ROL 1 PSH SUB 4 PSH 1 PSH ROL 1 PSH SUB 3 PSH
      1 PSH ROL 1 PSH SUB 2 PSH 1 PSH ROL 1 PSH SUB

      loop to **1**

      (   a*2   )               (   b*3   )               (  c*4  )
**3** 2 PSH MUL 2 PSH 1 PSH ROL 3 PSH MUL 3 PSH 2 PSH ROL 4 PSH MUL

      +2a +3b +d +score
      ADD ADD ADD ADD

      output score
      OUN

চিত্রটি সংরক্ষণ করুন এবং এই অনলাইন পিট দোভাষীটিতে এটি ব্যবহার করে দেখুন:

পিটডেভ অনলাইন পিট দোভাষী


একটি পিট উত্তর ^। ^
দ্য_ব্যাসেট_হউন্ড

অবশ্যই! আমি যখনই ব্যবস্থাপনযোগ্য পীটের উত্তরগুলি যুক্ত করার চেষ্টা করি;)
এমএল


7

গণিত, 38 32 23 20 বাইট

(#+Min@#).{2,3,4,1}&

( সোয়েশ এর সাহায্যে )

শেষ পর্যন্ত ইনপুটটি ট্যাক করে ব্যবহার করুন:

(#+Min@#).{2,3,4,1}&@{3,5,4,3}

70

বিকল্প (36 বাইট):

20*Min@#+Total[(#-Min@#)*{2,3,4,1}]&

Tr[(# + Min@#) {2, 3, 4, 1}] &
ফিটফাট

@ সুইশ এত চালাক!
kukac67

1
এটি পুরো ফাংশন। আপনার যোগ করার দরকার নেই 20*Min@#, আপনি বর্ধন সহ বিয়োগের পরিবর্তে এটিকে পরিত্রাণ পেতে পারেন, কারণ সুবিধামত 2+3+4+1==10
ফিটফাট

@ সুইশ ওহ! ওটা আগের থেকে ভালো. তবে আমি কেন মাথা ঘুরিয়ে রাখতে পারি না কেন?
kukac67

2
@ সুইশ ওয়েল, সমস্ত সহায়তার জন্য ধন্যবাদ, তবে আপনার নিজের উত্তরটি পোস্ট করা উচিত ছিল। : ডি
kukac67

7

আর, 41 40 অক্ষর

b=min(a<-scan());sum(5*b+(a-b)*c(2:4,1))

ব্যবহার:

> b=min(a<-scan());sum(5*b+(a-b)*c(2:4,1))
1: 4 5 4 5
5: 
Read 4 items
[1] 84
> b=min(a<-scan());sum(5*b+(a-b)*c(2:4,1))
1: 3 5 4 3
5: 
Read 4 items
[1] 70

গত উদাহরণে, aভেক্টর হয় 3 5 4 3, a-bহয় 0 2 1 0, যা আমরা ভেক্টর দিয়ে গুণ 2 3 4 1এইভাবে দান 0 6 4 0আমরা যোগ যা 5*bদান 15 21 19 15( 5*bযোগ ভেক্টর প্রতিটি সদস্যের জন্য পুনর্ব্যবহৃত হচ্ছে, অত: পর কার্যকরভাবে যুক্ত করার 4*5*b,) যা আমরা পরিশেষে যোগফল, এইভাবে দান 70


40 বাইট:b=min(a<-scan());sum(5*b+(a-b)*c(2:4,1))
অ্যালেক্স এ

5

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

s=(a,b,c,d)=>10*Math.min(a,b,c,d)+a*2+b*3+c*4+d

ব্যবহার: s(1, 2, 3, 4)

এটি কীভাবে কাজ করে: ফাংশনটি আর্গুমেন্টের মধ্যে ক্ষুদ্রতম সংখ্যার সন্ধান করে এবং এটি দিয়ে 10( বহুগুণে 20) দ্বারা সংখ্যা বৃদ্ধি করে এবং বাকি স্কোর যুক্ত করে। 20গণনাটি চালিয়ে যাওয়ার জন্য স্কোর থেকে গুণগুলি এবং অংশগুলি বিয়োগ করা প্রয়োজন নয় ।

উন্নতি ভাগ করে নেওয়ার জন্য edc65 ধন্যবাদ!

আন golfed:

function score(a, b, c, d) {
    return 10 * Math.min(a, b, c, d) + a * 2 + b * 3 + c * 4 + d;
}

1
মিনিট সহ 10 টি ব্যবহার করুন, বিয়োগ করার দরকার নেই (ফাংশন s (a, b, c, d) {ফিরে 10 * ম্যাথ.মিন (ক, বি, সি, ডি) + এ * 2 + বি * 3 + সি * 4 + d;})
edc65

1
এবং ES6 এ:S=(a,b,c,d)=>10*Math.min(a,b,c,d)+a*2+b*3+c*4+d
edc65

@ edc65 দুর্দান্ত, ধন্যবাদ!
প্রোগ্রামফক্স

5

পাইথ , 15

sm*hd+@QtdhSQUQ

ইনপুটটি STDIN এ আলাদা কমা দেওয়া উচিত, যেমন

3,5,4,3

এটি একই কৌশলটি ব্যবহার করে যা অন্যান্য অনেকগুলি সমাধান ব্যবহার করেছে, বোনাসের জন্য অ্যাকাউন্টে প্রতিটি উপাদানকে সর্বনিম্ন যোগ করার। সর্বনিম্নটি hSQউপরের কোডে রয়েছে। 2, 3, 4, এবং 1 দ্বারা গুণনের জন্য, আমি তালিকাটিকে [0,1,2,3] এর উপরে মানচিত্রযুক্ত করব এবং ইনপুটটির (dl) তম উপাদানটিকে d + 1 দিয়ে গুণ করব। সুতরাং, -১ তম উপাদানটি 1 দ্বারা গুণিত হয়, জিরোথ 2 দ্বারা, প্রথমটি 3 দ্বারা এবং দ্বিতীয়টি 4 দ্বারা গুন হয় Then


5

জে, 23 22 টি অক্ষর

   (+/ .*&2 3 4 1@(+<./))

উদাহরণ:

   test =. 3 5 4 3
   (+/ .*&2 3 4 1@(+<./)) test
70

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

(23 দীর্ঘ সুস্পষ্ট ফাংশন সংজ্ঞা v=:3 :'+/+/\.3|.y+<./y':)


শুধু কেন নয় +/2 3 4 1*(+<./)?
সোয়াহে

@ সুইশ আমি এখানে সম্পূর্ণ প্রয়োজন নেই যদিও সম্পূর্ণ ফাংশনগুলি লিখতে পছন্দ করি। আপনি চাইলে এটি পোস্ট / যুক্ত করুন।
এলোমেলো

কীভাবে 2 3 4 1+/ .×]+<./?
এডম

4

অস্ট্রিচ v0.1.0 , 48 41 টি অক্ষর (খুব দীর্ঘ)

.$0={}/:n;{n-}%)\+1:i;{i*i):i;}%{+}*20n*+

এটি কেবল নীচের পুরানো সংস্করণের মতোই, @পুরো স্ট্যাকটি ঘোরানোর পরিবর্তে )\+(ডান আনসন) ব্যবহৃত হয়।

পুরনো সংস্করণ:

.$0={}/:n;{n-}%{}/{4@}3*1:i;]{i*i):i;}%{+}*20n*+

আমি আমার খুব সদ্য প্রয়োগ করা ভাষায় দুটি বাগটি আবিষ্কার করেছি, নীচের বর্ণনায় বর্ণিত। (ভাষাটি বর্তমানে গল্ফস্ক্রিপ্টের মতোই খুব একই রকম, তাই আপনি যদি গল্ফস্ক্রিপ্ট জানেন তবে এটি পড়া মোটামুটি সহজ হওয়া উচিত।

.$0=   get min value (for the *20 thingy)
{}/    *actually* get min value (BUG: `array number =' returns a single-element array...)
:n;    store as n
{n-}%  subtract this value from all array elements
{}/    dump array onto stack
{4@}3* rotate stack so that instead of 2 3 4 1, multipliers are 1 2 3 4
       (BUG: negative rotations don't work)
1:i;   set i (the multiplier) to 1
]{i*   multiply each array element by i
i):i;  increment i
}%     (do the previous 2 lines over each array element)
{+}*   add up all the array elements
20n*+  add 20*n (the min value we got in line 1)

STDIN এ অ্যারে হিসাবে ইনপুট প্রত্যাশা করে, কারণ আমি একটি ডোরকনব এবং v0.1.0 এ I / O প্রয়োগ করতে ভুলে গিয়েছি।

অস্ট্রিচের একটি আসল সমস্যা সমাধান করা দুর্দান্ত, কারণ এটি আমাকে দেখায় যে ভাষায় আমাকে আরও কতগুলি জিনিস যুক্ত করতে হবে: ডি


আপনার ভাষার জন্য শুভকামনা, এখনও অবধি সুন্দর লাগছে;)
চার্লি

4

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

lambda i:i[1]-i[3]+2*(sum(i)+i[2]+5*min(i))

@ User2487951 এর উত্তর দ্বারা অনুপ্রাণিত


চমৎকার অ্যালগরিদম! একটি পূর্ণ প্রোগ্রামের জন্য আপনার ইনপুট এবং মুদ্রণ বিবৃতিও দরকার।
ব্যবহারকারী 2487951

1
@ user2487951 আউটপুট এর অন্যতম অনুমোদিত উপায় ছিল "রিটার্ন", সুতরাং এটি সম্পূর্ণ প্রোগ্রাম না হলেও এটি একটি বৈধ উত্তর।
isaacg

3

জগল আলফা 1.2 - 20 বাইট

ইনপুটটি ফর্ম্যাটে স্টিডিনে রয়েছে (3 4 5 6), আউটপুটটি স্ট্যাকের উপরে রেখে যায়:

T~dqZ*S1 5r]%{U*}/b+

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

ব্যাখ্যা:

T~                            Get input from stdin and evaluate
  dqZ*                      Duplicate, get minimum, and multiply that by 10
      S1 5r]                Swap (so array is on top), push range 1-5 exclusive, and rotate
            %{U*}/          Zip arrays together, and multiply each pair
                  b+P       Get the sum of that, add the common minimum, and print

প্রথম উত্তর গৃহীত হয়েছে, এটি পরিষ্কার করার জন্য সম্পাদিত পোস্ট
চার্লি 9

@ অপ্টিমাইজার পয়েন্ট নেওয়া হয়েছে। সম্পাদনা করা হয়েছে।
বিশ্বব্যাপী

3

হাস্কেল, 40

g l@[a,b,c,d]=2*a+3*b+4*c+d+10*minimum l

বাকিগুলি থেকে ন্যূনতম সংখ্যাটি সরিয়ে এবং অতিরিক্ত 20গুলি যুক্ত করার পরিবর্তে এটি ন্যূনতম সংখ্যার 10জন্য অতিরিক্ত যুক্ত করে ।


সুন্দর সমাধান। আপনি অর্ডারটি মিশ্রিত করেছেন তবে এটি হওয়া উচিত..4*c+d..

3

মতলব, 27

এটি একক প্লেয়ারের খেলা তা বুঝতে আমাকে কিছুক্ষণ সময় লাগল। বেনামে ফাংশন সাহায্যে

f=@(N)N*[2;3;4;1]+10*min(N)

যা সারি ভেক্টরের সাথে ডাকা হয়

f([3 5 4 3]) == 70
f([7 7 9 7]) == 148

1
আমি মনে করি এটি f=2 অংশ কম বাইট জন্য ড্রপ করতে সাধারণত এই অংশগুলি কাছাকাছি গৃহীত হয় । ফাংশন ansপরিবর্তে ভেরিয়েবলের মধ্যে সঞ্চয় করা হয় ।
ব্রেইনস্টিল

1
[2:4,1]ইনপুটটি কলাম ভেক্টর হলে 2 বাইট মুণ্ডন করবে।
সানচাইজস

2

জাভা, 84 বাইট

int A(int[]a){int m=9;for(int i:a)m=i<m?i:m;return 10*m+a[3]+2*a[0]+3*a[1]+4*a[2];}

আমার ধারণা এই আরও গল্ফ করা যেতে পারে, কিন্তু এটি আপাতত এটি।

সাথে কল করুন A(new int[]{3,5,4,3}), আউটপুট int হিসাবে ফিরে System.out.println()আসবে (কারণ বাইটগুলি দ্বিগুণ করবে)

Ungolfed

int getScore(int[] input){
    int min=9;

    for(int x:input) {
        if(x<min){
            min=x;
        }
    }

    return 10*min + 2*input[0] + 3*input[1] + 4*input[2] + 1*input[3];
}

2

গল্ফস্ক্রিপ্ট, 22 বাইট

~3,{1$>~;}%+$(11*+{+}*

বিন্যাসে স্টিডিন থেকে ইনপুট পড়ুন [3 5 4 3]। স্টাডাউট আউটপুট লিখুন। (যদি স্ট্যাকের অ্যারে হিসাবে ইনপুটটি গ্রহণের অনুমতি ~দেওয়া হয় তবে মোট 21 বাইটে অগ্রণীকে বাদ দেওয়া যেতে পারে))

এটি সিজেএম / পাইথ / ইত্যাদি সমাধানগুলির চেয়ে কিছুটা আলাদা কৌশল ব্যবহার করে: আমি প্রথমে প্রথম ইনপুট মানের 2 কপি, দ্বিতীয়টির 3 টি, তৃতীয়টির 4 এবং চতুর্থটির একটি দিয়ে একটি অ্যারে তৈরি করি। তারপরে আমি এই অ্যারেটিকে বাছাই করেছি, ক্ষুদ্রতম উপাদানটি টানছি, এটিকে 11 দিয়ে গুণ করব এবং অন্যান্য উপাদানগুলির সাথে এটি যোগ করব।


2

পাইথন 2, 51

অপ্রয়োজনীয়, তবে সংক্ষিপ্ত:

l=input()
print l[0]*2+l[1]*3+l[2]*4+l[3]+10*min(l)

আরও অজগর:

l=input()
print sum(map(lambda x,y:x*y,l,[2,3,4,1]))+10*min(l)

যদি ইনপুটটি [3,5,4,3] হয় তবে এটি কি 70 ফিরে আসবে?
চার্লি

হ্যাঁ, এটি উভয় ক্ষেত্রেই হয়। এবং 84 [4,5,4,5] এর জন্য ফেরত দেয়।
ব্যবহারকারীর 2487951

2

জুলিয়া, 48 35 টি অক্ষর

function p(m);sum([2 3 4 1].*m)+10minimum(m);end

কমপ্যাক্ট অ্যাসাইনমেন্ট ফর্মে:

p(m)=sum([2 3 4 1].*m)+10minimum(m)

উদাহরণ:

julia> p([3 5 4 3])
70

2

জাভাস্ক্রিপ্ট, 97 বাইট

a=prompt().split(" "),b=Math.min.apply(1,a);alert(20*b+2*(a[0]-b)+3*(a[1]-b)+4*(a[2]-b)+(a[3]-b))

1

জাভাস্ক্রিপ্ট, ES6, 57

f=(a,b,c,d)=>a*b*c*d?20+f(--a,--b,--c,--d):a*2+b*3+c*4+d

আমি কীভাবে পুনরাবৃত্তি ঘটবে তা দেখতে চেয়েছিলাম, এবং এটি অবশ্যই সংক্ষিপ্ত উত্তর নয়, তবে আমার মনে হয়েছিল এটি ভালভাবে পরিণত হয়েছে।

a*b*c*d: এটি ইনপুট মানগুলি নেয় এবং সেগুলির সকলের পণ্য সন্ধান করে এবং বিবৃতিটি ইনলাইনটির জন্য বুলিয়ান এক্সপ্রেশন হিসাবে মূল্যায়ন করে। এক বা একাধিক মান 0 হয় এবং অন্য কোনও মানের জন্য সত্য হলে এটি মিথ্যা ফেরত আসবে।

20+f(--a,--b,--c,--d): এটা TRUE ফেরত পাঠায়, ফাংশন আয় 20 (জন্য schijven সেট) প্লাস মাইনাস এক মূল্যবোধের সকলের জন্য ফাংশনের recursive কল (যে মুছে ফেলার জন্য schijven সেট)। কমপক্ষে একটি বাক্স খালি না হওয়া পর্যন্ত এটি পুনরাবৃত্তভাবে লুপ করবে।

a*2+b*3+c*4+dকমপক্ষে একটি বক্স খালি হয়ে যাওয়ার পরে, ইনলাইনটির অন্য অংশটি যদি বিবৃতিটি চলবে। এটি বাক্সগুলিতে বাকী স্কিজেনের পয়েন্টগুলি কেবল ফেরত দেয় ।

এইভাবে শেষে 20 পয়েন্টের সমস্ত স্কিজেভেন সেট, এবং রিমান্ডিং পয়েন্টগুলি সংক্ষিপ্ত করে এবং উত্তরটি তৈরি করে ফাংশন থেকে ফিরে আসে।


1

হাস্কেল ৪২ টি চর

f l=10*minimum l+sum(zipWith(*)[2,3,4,1]l)

সমষ্টিটি সুস্পষ্টভাবে কোড করুন: f l@[a,b,c,d]=10*minimum l+2*a+3*b+4*c+d- 2 টি অক্ষর সাশ্রয় করেছে
MtnViewMark

1

এইচপিপিএল (এইচপি প্রাইম প্রোগ্রামিং ভাষা), 58 57 বাইট

10 এবং মিনিটের মধ্যে * প্রয়োজন হয় না, তাই আমি এটি সরিয়ে দিয়েছি।

EXPORT s(m)
BEGIN
return sum([2,3,4,1].*m)+10min(m);
END;

এইচপিপিএল হ'ল এইচপি প্রাইম কালার গ্রাফিং ক্যালকুলেটর / সিএএস এর প্রোগ্রামিং ভাষা।

উদাহরণ রান:

এইচপিপিএল স্ক্রিন ক্যাপচার স্কাইলেন পয়েন্ট গণনা প্রোগ্রাম

যদি এটি কোনও প্রোগ্রাম না হয় তবে এটি একটিতে উপলব্ধিযোগ্য 40 39 বাইট এক-লাইনার:

m:=[3,5,4,3];sum([2,3,4,1].*m)+10min(m)

1

স্টাক, 72 টি অক্ষর

't't't't{aii*XX}$&iia$&ia$&a+XX+XX+|{mxx}{lxX}{k>?m!l}kkk&iiqi&ii*s*t|+:

উদাহরণ রান:

Executing D:\codegolf\Staq\sjoelen codegolf.txt

3
5
4
3
70

Execution complete.
>

স্টাকের দুটি স্ট্যাক রয়েছে, একটি সক্রিয়, একটি প্যাসিভ। |কমান্ড প্যাসিভ এবং তদ্বিপরীত সক্রিয় স্ট্যাক পরিবর্তন করা হয়।

কোঁকড়ানো ধনুর্বন্ধনী এর মধ্যকার প্রতিটি কিছুই একটি ফাংশন সংজ্ঞায়িত করে, প্রারম্ভিক বন্ধনী পরে প্রথম অক্ষরটি ফাংশনটির নাম, বন্ধ হওয়া বন্ধনী বন্ধ হওয়া পর্যন্ত বাকীটি নিজেই ফাংশন। ওভাররাইডিং ফাংশন, পুনরাবৃত্তি এবং নেস্টেড ফাংশনগুলি সম্ভব। {aii}একটি ফাংশন নির্ধারণ হবে একটি যে স্ট্যাকের উপরে দুইবার বাড়ায় হবে। aকোডের প্রতিটি নিম্নলিখিত উদাহরণ প্রতিস্থাপন করা হবে ii

ভিতরে মন্তব্য Staq prorams: &স্ট্যাকের উপর একটি শূন্য যোগ করে, [পয়েন্টার নির্দেশ সংশ্লিষ্ট ঝাঁপ ]যদি স্ট্যাকের উপরে শূন্য হয়, xস্ট্যাক আগ মান মুছে ফেলা হবে। সুতরাং, মন্তব্য আকারে কোডে লেখা যেতে পারে&[here is a comment]x

ব্যাখ্যা (কার্যকরওযোগ্য):

'                                      &[input number]x
 t                                     &[copy top of active stack to passive stack]x
  t't't                                &[input next three numbers and copy them to the passive stack]x
       {aii*XX}                        &[define function a (increment twice, multiply the two topmost values, then delete the second value on the stack twice)]x
               $                       &[move top value to the bottom of the stack]x
                &ii                    &[put zero on top of the stack, incremment twice]x
                   a                   &[function a]x
                    $&ia$&a
                           +           &[put sum of the two topmost values on top of the stack]x
                            XX         &[delete second stack value, twice]x
                              +XX+
                                  |    &[switch active/passive stack]x
{mxx}                                  &[define function m: delete two topmost stack values]x
     {lxX}                             &[define function l: delete topmost stack value, then delete second value of remaining stack]x
          {k>?m!l}                     &[define function k: boolean top > second value? put result on top of the stack, if top>0 then execute m, if top = 0 then execute l]x
                  kkk&ii
                        q              &[put square of top value on top of the stack]x
                         i&ii
                             *         &[multiply two topmost values and put result on top of the stack]x
                              s        &[move bottom stack value to the top]x
                               *t|+
                                   :   &[output result]x

https://esolangs.org/wiki/Staq

প্রোগ্রামটি 2a + 3b + 4c + d গণনা করার জন্য একটি স্ট্যাক (প্রাথমিকভাবে সক্রিয়) এবং দ্বিতীয় স্ট্যাক (প্রাথমিকভাবে প্যাসিভ) ইনপুট মানগুলির সর্বনিম্ন 10 গুণ গণনা করে uses তারপরে উভয় ফলাফল সংক্ষিপ্ত করে প্রদর্শিত হয়।


1

উইন্ডোজ , 48 47 বাইটের জন্য পাওয়ারশেল

-1 বাইট ধন্যবাদ ম্যাজি

$args|%{$a+=++$i%4*$_+$_}
$a+10*($args|sort)[0]

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


1
এটি অনলাইন চেষ্টা করুন! । আমরা Powershell for Windowsযখন sortউপনামটি ব্যবহার করব তখন আমাদের নির্দিষ্ট করা উচিত ? দেখতে মেটা
mazzy

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