मानक खरोंच क्या है?


12

गोल्फ में, इस फॉर्मूले का उपयोग करके एक कोर्स के मानक स्क्रैच की गणना की जाती है:

(3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating

आपका काम एक गोल्फ कोर्स के मानक स्क्रैच की गणना करना है, इन 4 आदानों को दिया गया है।

आपको प्रारूप में किसी भी मानक रूप में इनपुट लेना चाहिए

[num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating

लेकिन अगर यह बाइट्स बचाता है, तो आप कई अलग तरीके से इनपुट लेते हैं।

आपको मेटा पर किसी भी स्वीकृत विधि द्वारा अंतिम परिणाम का उत्पादन करना चाहिए, जैसे कि किसी फ़ंक्शन से वापस लौटना।

सबसे छोटा कोड जीतता है क्योंकि यह !


क्या सभी इनपुट पूर्णांक और कम से कम 1 होंगे? (इसके अलावा, उत्पादन हमेशा धनात्मक रहेगी?)
दरवाज़े

क्या हम उलटा इनपुट ले सकते हैं?
पूरी तरह से अमानवीय

13
जैसा कि यह तुच्छ है, कुछ परीक्षण मामले अच्छे होंगे।
डेनिस

9
दिलचस्प है, गोल्फ के बारे में एक कोड गोल्फ।
सर्गियोल

जवाबों:


28

स्क्रैच, 145 बाइट्स

-2 बोकोक्वैक के लिए धन्यवाद
- ??? क्योंकि इसे ओटो में लिखना अंग्रेजी से कम है

(क्योंकि स्क्रैच मानक खरोंच है।)

adi () - temi (a) kuati (thadi adi () - temi (b) kuati (thadi adi) () - temi (c) kuati (thadi adi) () - temi (d) kuati (thadi ma (a (c) - ((ए) + (डी)) + ((४) * ((ए) (बी)) + (सी ट्रांसलेशन: पूछें और) और प्रतीक्षा सेट (ए) से (जवाब पूछें) (और प्रतीक्षा सेट) ख) (उत्तर पूछें () और प्रतीक्षा सेट (सी) से (जवाब पूछें) और प्रतीक्षा सेट (डी) से (उत्तर कहें ((सी) - ((ए) + (डी)) + ((४) ) * (((क) + (ख)) + (ग

यहाँ एक नमूना रन है:

एक = 18, ख = 13, ग = 41, डी = 23; जवाब = 124




6

हास्केल , 22 बाइट्स

(a#b)c d=3*a+4*b+5*c-d

इसे ऑनलाइन आज़माएं! उपयोग: (3#2)5 7पैदावार 35

यह इतना अच्छा इनपुट प्रारूप नहीं है जो सीधे आगे के समाधान की तुलना में एक बाइट छोटा हो:

f a b c d=3*a+4*b+5*c-d

बिंदु मुक्त और अच्छा इनपुट प्रारूप: (23 बाइट्स)

(-).sum.zipWith(*)[3..]

इसे ऑनलाइन आज़माएं! के साथ बाँधो fऔर बुलाओ f [3,2,5] 7


5

गणितज्ञ, १३ 14 बाइट्स

{3,4,5,-1}.#&

@GregMartin को धन्यवाद। इनपुट को लंबाई -4 सूची के रूप में लें।


धन्यवाद "लेकिन अगर यह बाइट्स बचाता है, तो आप कई अलग तरीके से इनपुट लेते हैं", मुझे लगता है कि आपको इनपुट को लंबाई -4 सूची के रूप में लेना चाहिए और दूसरे समाधान को {3,4,5,-1}.#&(13 बाइट्स) छोटा करना चाहिए ।
ग्रेग मार्टिन

आप सही कह रहे हैं ..
कीऊ गण




4

क्या तीन बाइट्स हैं, या क्या मैं गर्भपात कर रहा हूं? .*एक सुधार होगा ? संपादित करें: कोई बात नहीं - सारांश हिस्सा याद किया।
जूलियन वुल्फ

हाँ, तीन बाइट्स। .*केवल तत्व-वार गुणन करता है; यह उत्पादों का योग नहीं लेता है।
डेनिस


3

x86-64 मशीन कोड, 14 बाइट्स

8D 3C 7F 8D 14 92 8D 04 B7 01 D0 29 C8 C3

सिस्टम V AMD64 कॉलिंग कन्वेंशन (Gnu / Linux सिस्टम पर सर्वव्यापी) के बाद एक फ़ंक्शन जो चार पूर्णांक पैरामीटर लेता है:

  • EDI = num_of_3_par_holes
  • ESI = num_of_4_par_holes
  • EDX = num_of_5_par_holes
  • ECX = कठिनाई_रचना

यह EAXरजिस्टर में एकल मान, मानक स्क्रैच देता है ।

असेंबली असेंबली mnemonics:

; int ComputeStandardScratch(int num_of_3_par_holes,
;                            int num_of_4_par_holes,
;                            int num_of_5_par_holes,
;                            int difficulty_rating);
lea   edi, [rdi+rdi*2]    ; EDI = num_of_3_par_holes * 3
lea   edx, [rdx+rdx*4]    ; EDX = num_of_5_par_holes * 5
lea   eax, [rdi+rsi*4]    ; EAX = EDI + (num_of_4_par_holes * 4)
add   eax, edx            ; EAX += EDX
sub   eax, ecx            ; EAX -= difficulty_rating
ret                       ; return, leaving result in EAX

सूत्र का बस एक सरल अनुवाद। क्या दिलचस्प है कि यह अनिवार्य रूप से समान कोड है जिसे आप गति के लिए अनुकूलन करते समय लिखते हैं। यह वास्तव में 86 के की शक्ति से पता चलता LEAअनुदेश, जो करने के लिए डिज़ाइन किया गया है एल oad एक ffective एक ddress, लेकिन एक भी शिक्षा में (2 के कम शक्तियों द्वारा गुणा) इसके अलावा और स्केलिंग कर सकते हैं, यह एक शक्तिशाली बहुउद्देश्यीय अंकगणित workhorse बना ।


3

जेली , 10 7 बाइट्स

3r5×⁸S_

इसे ऑनलाइन आज़माएं!

-3 बाइट्स एरिक आउटगोलर के लिए धन्यवाद!

यह काम किस प्रकार करता है!

3r5×⁸S_  Main link: a, the pars as a list and b, the difficulty rating

     S   The sum of
3r5        [3, 4, 5]
   ×       each element times
    ⁸      the left argument (a)
      _  Subtract the right argument (b)

सूचियों को बनाने का मानक तरीका छूट रहा है []लेकिन आप 3r5×⁸S_इसे अधिक गोल्फ ( 3r5-> [3, 4, 5], = बाईं ओर तर्क से इसे अलग करने के लिए उपयोग कर सकते हैं S, ×सराहनीय है)।
निकोलस

3

ऑक्टेव , 14 बाइट्स

@(a)[3:5 -1]*a

इसे ऑनलाइन आज़माएं!

लगभग दो बार जब तक MATL उत्तर देता है । मैंने शुरू में इसे MATL के लिए शाब्दिक रूप से चित्रित किया था, लेकिन यह पता चला iY*कि यह अभी की तुलना में लंबा है *s। ध्यान दें कि इनपुट a, क्रम में छेद और फिर कठिनाई, एक कॉलम वेक्टर होना चाहिए।


जैसा कि प्रश्न कहता है कि आप किसी भी प्रारूप में इनपुट ले सकते हैं यदि यह बाइट्स बचाता है, तो यह 14 के लिए काम करता है @(a)[3:5 -1]*a:। इनपुट एक कॉलम वेक्टर है[3 holes; 4 holes; 5holes; difficulty]
टॉम कारपेंटर

@TomCarpenter ओह, मुझे लगा कि सूची + संख्या भाग अनिवार्य था। यह थोड़ा विचित्र है: "आपको चाहिए ... लेकिन आप कर सकते हैं"। मुझे लगता है कि मैं अपने जवाब में संशोधन करूंगा।
Sanchises


2

नीम , 7 बाइट्स

'π𝐂𝕋𝐬S𝕊

स्पष्टीकरण:

'π         Push 345
           The character ' pushes the next character's index in the codepage plus 100.
           The characters ", + and * do that same thing except add a different number.
           This means that in Neim, all 3 digit numbers can be expressed with 2 characters.
           This commit was pushed 8 days before the answer was posted.
  𝐂        Get the characters
   𝕋       Vectorised multiply with the input
    𝐬       Sum the resulting list
     S𝕊    Subtract the input

वैकल्पिक कार्यक्रम: 3𝐈ᛖ𝕋𝐬S𝕊

पुश करने 345और फिर वर्ण प्राप्त करने के बजाय , सरणी [1 2 3]का उपयोग करके बनाता है 3𝐈, फिर प्रत्येक तत्व के साथ 2 जोड़ता है

इसे ऑनलाइन आज़माएं!


This commit was pushed 8 days before the answer was posted.ठीक है, आपको वास्तव में इसकी आवश्यकता नहीं है।
एर्ग आउटफोलर

@EriktheOutgolfer यकीन है कि मैं नहीं। लेकिन मुझे भी स्पष्टीकरण की आवश्यकता नहीं है। क्या आप मुझे निकालना चाहेंगे?
ओकेक्स

मूल रूप से आम सहमति बदलने के बाद से आपको गैर-प्रतिस्पर्धा के बारे में चिंता करने की आवश्यकता नहीं है।
एर्ग आउटफोलर

@EriktheOutgolfer मैं गैर-प्रतिस्पर्धा के बारे में चिंता करता हूं क्योंकि मेटा सर्वसम्मति व्यक्तिपरक और अस्पष्ट है। लेकिन इस मामले में, वहाँ होने के बारे में शिकायत करने का कोई कारण नहीं है। आप अपने से अधिक समय का उपयोग कर रहे हैं अन्यथा आप उस टिप्पणी को पोस्ट नहीं करेंगे।
ओकेक्स

किसी कारण के लिए, इनलाइन कोड ब्लॉक में अधिकांश नीम चार्ट दिखते हैं? बक्से।
कैलक्यूलेटरफ्लेन


2

स्विफ्ट 3 , 25 19 बाइट्स

मुझे एहसास हुआ कि आपको इसकी आवश्यकता नहीं है var f=, क्योंकि आप इसे पाइथन लैम्बडा की तरह कह सकते हैं:

{$0*3+$1*4+$2*5-$3}

इसे ऑनलाइन टेस्ट करें!

उपयोग: {$0*3+$1*4+$2*5-$3}(a,b,c,d) जहां a,b,c,dपैरामीटर हैं।


2

ब्रेनफक , 39 बाइट्स

,[->+++<],[->++++<],[->+++++<],[->-<]>.

इसे ऑनलाइन आज़माएं!

ASCII वर्णों के रूप में इनपुट और प्रिंट आउटपुट लेता है; उदाहरण के लिए, मान 99 को c के रूप में दर्शाया जाएगा।

स्पष्टीकरण:

,                                       Take the first input in Cell 0
 [      ]                               While the data being pointed to (Cell 0) is nonzero
  ->+++<                                Decrement Cell 0 and add 3 to Cell 1
                                        Now 4 times the first input is in Cell 1
         ,                              Take the second input in Cell 0
          [->++++<]                     Add 4 times the second input to Cell 1
                   ,[->+++++<]          Take the third input in Cell 0 and add five times its value to Cell 1
                              ,         Take the fourth input in Cell 0
                               [    ]   While the data being pointed to (Cell 0) is nonzero
                                ->-<    Decrement Cells 0 and 1
                                     >. Print the value in Cell 1



2

ब्रेकीलॉग , 18 16 बाइट्स

∧5⟦₁↺b;?z×ᵐġ₃+ᵐ-

इसे ऑनलाइन आज़माएं!

-2 घातक के लिए धन्यवाद ।


∧5⟦₁↺b;?z×ᵐġ₃+ᵐ-है 2 कम बाइट्स
घातक

@ यदि यह अग्रणी पूर्णांक और इनपुट के साथ बग नहीं था, तो यह 3 कम बाइट्स रहा होगा।
निकोलस

2

,,,, 12 बाइट्स

↻5×↻4×↻3×↻-#

व्याख्या

उदाहरण के लिए इनपुट 4, 3, 2, 1 को लें।

↻5×↻4×↻3×↻-#

              implicit input                  [4, 3, 2, 1]
↻             rotate the stack clockwise      [1, 4, 3, 2]
 5            push 5                          [1, 4, 3, 2, 5]
  ×           pop 2 and 5 and push 2 * 5      [1, 4, 3, 10]
   ↻          rotate the stack clockwise      [10, 1, 4, 3]
    4         push 4                          [10, 1, 4, 3, 4]
     ×        pop 3 and 4 and push 3 * 4      [10, 1, 4, 12]
      ↻       rotate the stack clockwise      [12, 10, 1, 4]
       3      push 3                          [12, 10, 1, 4, 3]
        ×     pop 4 and 3 and push 4 * 3      [12, 10, 1, 12]
         ↻    rotate the stack clockwise      [12, 12, 10, 1]
          -   pop 10 and 1 and push 10 - 1    [12, 12, 9]
           #  pop 12, 12, 9 and push the sum  [33]
              implicit output

2

क्यूबिक्स , 36 बाइट्स

w;r5*U4I;I3*r;UW;;r;<\r/;r-I/+p+O@;w

इसे ऑनलाइन आज़माएं!

      w ; r
      5 * U
      4 I ;
I 3 * r ; U W ; ; r ; <
\ r / ; r - I / + p + O
@ ; w . . . . . . . . .
      . . .
      . . .
      . . .

यह देखो भागो

एक काफी रेखीय कार्यक्रम जो कुछ ही समय में अपने चारों ओर हवाओं को वापस करता है। मूल चरण:

  • I3*r;U; पहला इनपुट प्राप्त करें, 3 से गुणा करें और स्टैक को साफ करें
  • I4*/r\ अगला इनपुट प्राप्त करें और 4 से गुणा करें। परिणाम को नीचे घुमाएं।
  • Iw5*Ur;w<;r;;W अगला इनपुट प्राप्त करें, 5 से गुणा करें और स्टैक को साफ करें
  • I-r;w; अंतिम इनपुट प्राप्त करें, बराबर 5 परिणाम से घटाएं और स्टैक को साफ करें
  • /+p+O\@ 4 परिणाम में जोड़ें, शीर्ष जोड़ें, आउटपुट और पड़ाव के लिए par3 परिणाम लाएं

2

एचपी -15 सी (आरपीएन), 14 बाइट्स

निर्देश हेक्स कोड:

41 C4 F5 FC C5 F4 FC FA C5 F3 FC FA 31 FB

पठनीय संस्करण:

001 {       44  1 } STO 1
002 {          33 } R⬇
003 {           5 } 5
004 {          20 } ×
005 {          34 } x↔y
006 {           4 } 4
007 {          20 } ×
008 {          40 } +
009 {          34 } x↔y
010 {           3 } 3
011 {          20 } ×
012 {          40 } +
013 {       45  1 } RCL 1
014 {          30 } −

कार्यक्रम चलाने से पहले चार नंबर को स्टैक में लोड किया जाता है।


अच्छा पहला जवाब। PPCG में आपका स्वागत है!
संगीतकार ५२३

2

एक्सेल VBA, 20 बाइट्स

बेनामी VBE तत्काल विंडो फ़ंक्शन जो उस श्रेणी से इनपुट लेता [A3:A6]है जो क्रमशः [A3:A5]की संख्या 3, 4और 5बराबर छेद का [A6]प्रतिनिधित्व करता है और कठिनाई का प्रतिनिधित्व करता है। VBE तत्काल विंडो में आउटपुट

?[3*A3+4*A4+5*A5-A6]

ऊपर कॉल का एक संक्षिप्त संस्करण है

Debug.Print Application.Evaluate("=3*A3+4*A4+5*A5-A6")

रैपर "=3*A3+4*A4+5*A5-A6"द्वारा इंगित के रूप में एक गुमनाम सेल का सूत्र कहां दिया गया है [...], और संदर्भ द्वारा निहित के साथ कॉल ?का पदावनत संस्करण हैPrintDebug.

अधिक मजेदार संस्करण, 34 बाइट्स

बेनामी VBE उपर्युक्त के समान I / O शर्तों के साथ तत्काल विंडो फ़ंक्शन।

?[SUMPRODUCT(A3:A5,ROW(A3:A5))-A6]

ऊपर कॉल का एक संक्षिप्त संस्करण है

Debug.Print Application.Evaluate("=SUMPRODUCT(A3:A5,ROW(A3:A5))")

रैपर "=SUMPRODUCT(A3:A5,ROW(A3:A5))"द्वारा इंगित के रूप में, एक अनाम सेल का सूत्र कहां दिया गया है [...], और संदर्भ द्वारा निहित के साथ कॉल ?का पदावनत संस्करण है । इस संस्करण में, उस श्रेणी ( और) की पंक्ति संख्या को सरणियों के रूप में पारित किया जाता हैPrintDebug.[A3:A5]ROWS(A3:A5)

एक्सेल संस्करण, 18 बाइट्स

बेशक, ऊपर दिए गए संस्करण इस प्रकार के संस्करणों के लिए खुद को उधार देते हैं

=3*A3+4*A4+5*A5-A6

तथा

=SUMPRODUCT(A3:A5,ROW(A3:A5))-A6

2

आर , 25 23 बाइट्स

cat(c(3:5,-1)%*%scan())

इसे ऑनलाइन आज़माएं!


1
sum(scan()*3:5)-scan()थोड़ा छोटा है
मिक टीटी

धन्यवाद। scanजब आमतौर पर इस तरह के कई इनपुट होते हैं, तो मैं कोशिश नहीं करता , लेकिन वाध्या जानते हैं!
Giuseppe




हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.