स्रोत क्रमोन्नति


14

एक क्रमचय एक सेट के एक है द्विभाजित समारोह । उदाहरण के लिए, यदि तो फ़ंक्शन क्रमपरिवर्तन है:S={s1,s2,,sn}π : एस एस एस = { 1 , 2 , 3 , 4 } π : एक्स 1 + ( एक्स + 1π:SSS={1,2,3,4}π:x1+(x+1mod4)

π(1)=3,π(2)=4,π(3)=1,π(4)=2

हम अनंत सेटों पर भी क्रमपरिवर्तन कर सकते हैं, चलो एक उदाहरण के रूप में N लेते हैं : फ़ंक्शन π:xx1+2(xmod2) एक क्रमपरिवर्तन है, विषम और यहां तक ​​कि स्वैपिंग दो के ब्लॉक में पूर्णांक। पहले तत्व इस प्रकार हैं:

2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,

चुनौती

इस चुनौती के लिए आपका कार्य सकारात्मक प्राकृतिक संख्याओं पर किसी भी 1 क्रमचय को लागू करने वाले एक फ़ंक्शन / प्रोग्राम को लिखना है । आपके समाधान का स्कोर कार्यान्वित क्रमपरिवर्तन के साथ मैप करने के बाद कोडपाइंट का योग है।

उदाहरण

मान लीजिए कि हम पायथन के साथ लागू किया गया उपरोक्त क्रमांकन लेते हैं:

def pi(x):
    return x - 1 + 2*(x % 2)

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

चरित्र dमें कोडपॉइंट 100 , pi(100)=99 । यदि हम हर चरित्र के लिए ऐसा करते हैं, तो हमें यह मिलता है:

99,102,101,31,111,106,39,119,42,57,9,31,31,31,31,113,102,115,118,113,109,31,119,31,46,31,50,31,44,31,49,41,39,119,31,38,31,49,42

इन सभी मैप किए गए पात्रों का योग 2463 , यह उस फ़ंक्शन के लिए स्कोर होगा।

नियम

आप एक फ़ंक्शन या प्रोग्राम के रूप में एक क्रमचय को लागू करेंगेπ

  • एक प्राकृतिक संख्या , रिटर्न / आउटपुटxπ(x)
  • इस चुनौती के प्रयोजन के लिए करता नहीं होते हैंN0
  • क्रमपरिवर्तन गैर-तुच्छ रूप से अनंत उप-क्रम की अनुमति देता हैN
  • आपके कार्य / कार्यक्रम को अपने स्वयं के स्रोत को पढ़ने की अनुमति नहीं है

स्कोरिंग

उस क्रमांक के तहत स्कोर सभी कोडपॉइंट्स (शून्य बाइट्स सोर्स कोड का हिस्सा नहीं हो सकता है) द्वारा दिया जाता है (कोडपॉइंट आपकी भाषा 2 पर निर्भर करते हैं , आप SBCS, UTF-8 आदि का उपयोग करने के लिए स्वतंत्र हैं। आपकी भाषा इसका समर्थन करती है)।

सबसे कम स्कोर जीत के साथ जमा, जल्द से जल्द प्रस्तुत करने से संबंध टूट जाते हैं।


  1. उन अनुमतियों को छोड़कर, जो केवल परिमित सबसेट की अनुमति देती हैं , जिसका अर्थ है कि सेट अनंत होना चाहिए।N{x|π(x)x}

  2. यदि यह आपके स्कोर में सुधार करता है, तो आप उदाहरण के लिए सामान्य SBCS के बजाय UTF-8 एन्कोडेड जेली सबमिशन का उपयोग कर सकते हैं।


1
@JoKing "शून्य बाइट्स स्रोत कोड का हिस्सा नहीं हो सकता है" पुन: दूसरा सवाल
केवल

जवाबों:


6

जेली , स्कोर  288 250 212  199

-38 धन्यवाद एग्री द आउटग्राफर!

C-*+

अजीब के साथ भी स्वैप।

स्कोर - यहां स्व-स्कोरिंग देखें ।67+45+44+43=199

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


जाहिर है, लीक नून का -*ạस्कोर 300 है ... हालांकि, -*_@उसका स्कोर 250 है। हो सकता है कि मुझे अपने खुद के रूप में पोस्ट करना चाहिए, हालांकि यह एक ही क्रमपरिवर्तन है।
आउटगोल्फर

लेकी नन द्वारा आह अच्छा अवलोकन, इसलिए -*N+स्कोर 212
जोनाथन एलन


3
C-*+कुछ भविष्य के बदलाव की तरह लग रहा है C++
वैल का कहना है कि मोनिका

5

जावास्क्रिप्ट (ईएस 6), स्कोर =  276  268

$=>(--$^40)+!0

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


लेकिन 54^54है0
जोनाथन एलन

@JonathanAllan को सूचित करने के लिए धन्यवाद। मैंने किसी तरह उस हिस्से को याद किया। अब सही होना चाहिए।
अरनौलड

4

पर्ल 6 , स्कोर: 201

*-!0+^40+!0

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

पोर्ट ऑफ़ अरनल्ड का जवाब । यह xor ( +^) के रूप में -और के रूप में एक ही पूर्वता होने +, और समग्र वर्णों को कम करने के लिए एक लैंबडा के उपयोग से लाभ। इसके अलावा, मैं इसे अलग तरीके से प्रस्तुत करने का एक तरीका नहीं खोज सका जिससे बेहतर स्कोर मिला।

पर्ल 6 , स्कोर 804 702

{{(++$ords(q[!$%()+-2?[]_doqrsx{}∉])??++$+22-$++%2-$++%2!!++$)xx$_}()[-!$+$_]}

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

यहाँ पहले क्विन-वाई प्रकार का उत्तर है, और मुझे लगता है कि यह बहुत अच्छा स्कोर करता है।

यह प्रश्न अनुक्रम साथ प्रश्न निकाय से उत्पन्न होता है कोड के अद्वितीय सॉर्ट किए गए कोडपाइंट के अनुक्रमित में सम्मिलित किए जाते हैं। उदाहरण के लिए, अनुक्रम के 35 वें तत्वों के माध्यम से 30 वें वें बाद से 33 वें कोडपॉइंट है और यह मेरे कोड में सबसे कम कोड पॉइंट है।23,22,25,24...1,2,3,4...2150,53,52,1,55,54!


O_o यह एक बहुत बड़ा सुधार है
ASCII-only

4

पायथन 2 स्कोर: 742 698 694 अंक

lambda a:a^96or~~96

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

-44 अंक अर्जन जोहान्सन के लिए धन्यवाद; -4 अंक xx से।


अर्जन जोहान्सन: फिक्स्ड (और इसने मुझे 44 बाइट्स बचाए!)
चेस ब्राउन

अच्छी बचत (हालांकि यह बाइट्स नहीं है)
Marrjan जोहानसन

यह कुछ उदार साख है!
अर्जन जोहान्सन

यदि आपने दोष नहीं बताया होता तो संपादित नहीं होता :)
चास ब्राउन

यह पहले स्पेस के स्थान पर सस्ता है 96साथ ~~
xnor

2

रेटिना 0.8.2 , 6 बाइट्स, स्कोर 260

T`O`RO

इसे ऑनलाइन आज़माएं! लिंक में स्व-स्कोरिंग पाद शामिल है। सीधे शब्दों में स्वैप अंक 1और 9और 3और 7दशमलव अभ्यावेदन में है, ताकि संख्या है कि कोई अंक होने के लिए coprime 10अप्रभावित रहे हैं।


2

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) , 22 बाइट्स, स्कोर 247 245

A=>A>65?A-1+A%2*2:66-A

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

सरल, यदि 66 से कम है, तो 66 माइनस इनपुट लौटाएं, अन्यथा सवाल में सूत्र का उपयोग करें जो समान और विषम संख्या में स्वैप करता है।


पिछले संस्करण में क्या गलत है A=>A<66?66-A:A?
जो किंग

2
@JoKing उन पारगमन को छोड़कर, जो केवल परिमित सबसेट की अनुमति देते हैं , जिसका अर्थ है कि सेट अनंत होना चाहिए। { एक्स | π ( x ) x }N{x|π(x)x}सेट अनंत नहीं है, क्योंकि सेट में केवल मान 1-65 हैं, 65 से ऊपर के हैं, ए मैप के सभी मानों को ए
अज्ञानता के अवतार

ओह, मैं उस पर ध्यान नहीं दिया। इसका अर्थ है कि मेरा स्वयं का उत्तर भी अमान्य है :(
जो राजा

2

टीआई-बेसिक, 9 बाइट्स, स्कोर 1088 1051 1000

Ans-cos(π2fPart(2⁻¹Ans

अजीब के साथ भी स्वैप। यहां तक ​​कि नक्शे Ans-1और विषम नक्शे Ans+1

TI-BASIC टोकन है, इसलिए इस कार्यक्रम में निम्नलिखित हेक्स-मान होंगे:

Ans   -    cos(  π    2    fPart(  2   ⁻¹  Ans
72    71   C4    AC   32   BA      32  0C  72

113+114+195+171+49+185+49+11+113=1000

आउटपुट परीक्षण कार्यक्रम:

For(I,1,10
I
Ans-cos(π2fPart(2⁻¹Ans
Disp Ans
Pause
End

कौन से आउटपुट:

2
1
4
3
6
5
8
7
10
9

टिप्पणियाँ:

  • TI-BASIC के टोकन मूल्य यहां देखे जा सकते हैं

  • Pauseक्रमांकन देखने के लिए आउटपुट प्रोग्राम में उपयोग किया जाता है, क्योंकि कैलकुलेटर में केवल 8 लाइनें हैं। प्रेस [ENTER] अगले क्रमचय देखने पर।


1

चारकोल , 13 बाइट्स, स्कोर 681

⁻⁺²³²ι⊗﹪⊖ι²³³

इसे ऑनलाइन आज़माएं! लिंक बाइट कोड की एक सरणी पर मैप करने के लिए हेडर के साथ स्व-स्कोरिंग संस्करण है। (चारकोल का एक कस्टम कोड पेज है, इसलिए मैंने मैन्युअल रूप से इनपुट में सही बाइट कोड सम्मिलित किया है।) 233 नंबरों की श्रेणियों को उलट कर काम करता है, ताकि 117, 350, 583 ... अपरिवर्तित रहे। स्पष्टीकरण:

     ι          Value
 ⁺              Plus
  ²³²           Literal 232
⁻               Minus
         ι      Value
        ⊖       Decremented
       ﹪        Modulo
          ²³³   Literal 233
      ⊗         Doubled

1

हास्केल, स्कोर 985

(\((.),(-))->(.)*200+mod(-39+(-))200+1).(\(*)->divMod((*)-1)200)

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


मुझे नहीं लगता कि यह एक क्रमपरिवर्तन है, क्योंकि जोड़ने a*200का कोई प्रभाव नहीं है modulo 200 तो a कोई फर्क नहीं पड़ता।
xnor

@xnor अच्छा कैच। यह मॉड के बाहर होना चाहिए। किसी समय गोल्फ खेलते समय, मुझे ऑपरेशन के क्रम में गड़बड़ी करनी चाहिए थी। अब तय है, धन्यवाद!
जोसेफ सिबल-रिबनेट मोनिका

मुझे लगता है कि एक और मुद्दा है जो 40 नक्शे 0 पर है, लेकिन चुनौती के लिए सकारात्मक पूर्णांक की आवश्यकता होती है, जो इस मुश्किल की तरह दृष्टिकोण बनाता है।
xnor

1
sum[1|...]ओवर का उपयोग करने में if..then..elseमदद करनी चाहिए।


1

05AB1E , स्कोर: 488 05AB1E के कोड पेज में

È·<-

स्वैप अजीब और यहां तक ​​कि उदाहरण समारोह की तरह।

यहां से स्कोर को बेहतर बनाने की कोशिश करेंगे।

इसे रेंज में इनपुट के साथ ऑनलाइन [1, 100]आज़माएं या कोडपॉइंट्स के साथ ऑनलाइन आज़माएं।

स्पष्टीकरण:

È     # Check if the (implicit) input is even (1 if truthy; 0 if falsey)
 ·    # Double (2 if truthy; 0 if falsey)
  <   # Decrease by 1 (1 if truthy; -1 if falsey)
   -  # Subtract it from the (implicit) input (and output implicitly)

0

ब्रेनफक, 47 बाइट्स, स्कोर 2988

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

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

मैंने परिचय में दिए गए क्रमांकन का उपयोग किया। चूंकि यह आपत्ति है, इसलिए आप इसे ROT13 या Atbash के समान एक साधारण सममितीय सिफर के रूप में उपयोग कर सकते हैं। मेरा समाधान अनबाउंड कोशिकाओं पर काम करता है। हालांकि, 8 बिट कोशिकाओं को अपने आप को सीमित करके, आप 2 अंक की जगह को बचा सकता है [-]के साथ [+]

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