मैं आपके कार्यक्रम को कितनी तेजी से कह सकता हूं?


26

मैंने हाल ही में अपने लेखन में मदद करने के लिए, कुछ डिक्टेशन सॉफ्टवेयर डाउनलोड करने का फैसला किया। हालाँकि, यह बहुत अच्छी तरह से काम नहीं कर रहा है जब मैं कोडिंग कर रहा हूं, क्योंकि मुझे शब्द कहने से लेकर प्रतीकों और फिर से वापस आने तक बदलना है। यह और भी बुरा है जब मैं एक गूढ़ भाषा में कोडिंग कर रहा हूं जो सभी प्रतीक हैं।

श्रुतलेख कार्यक्रम के मेरे उपयोग को और अधिक सुसंगत बनाने के लिए, मैंने इसे चरित्र मोड में बदलने का निर्णय लिया, जहाँ मैं इसके बजाय प्रत्येक वर्ण का नाम कहता हूँ। समस्या सुलझ गयी! हालांकि इससे मेरे उपन्यास की रिलीज़ की तारीख थोड़ी देरी हो जाती है ...

इसलिए, यह मानते हुए कि एक चरित्र का नाम जितना लंबा होगा, यह कहने में जितना अधिक समय लगेगा, मुझे अपने कुछ कार्यक्रमों / वाक्यों को समझने में कितना समय लगेगा?

विशेष विवरण

केवल मुद्रण योग्य ASCII से मिलकर एक स्ट्रिंग को देखते हुए, प्रत्येक वर्ण के यूनिकोड नाम का योग लौटाएं। उदाहरण के लिए, /कहा जाता है SOLIDUS7 अक्षरों के साथ है, और Aहै LATIN CAPITAL LETTER A22 पात्रों के साथ।

लेकिन याद रखें, मुझे आपके कार्यक्रमों को उन्हें निष्पादित करने के लिए ज़ोर से कहना होगा, इसलिए उनका स्कोर इस पर आधारित होगा कि मुझे उन्हें कहने में कितना समय लगेगा, अर्थात प्रत्येक चरित्र के यूनिकोड नाम की लंबाई के योग के रूप में।

परीक्षण के मामलों:

प्रारूप input => outputमें इनपुट में कोई अनुगामी / अग्रणी स्थान नहीं है।

A      => 22
/      => 7
Once upon a time...           => 304
slurp.uninames>>.comb.sum.say => 530
JoKing => 124
!" #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        =>  1591
Double-check your \s on the last test case ;)   => 755
<say "<$_>~~.EVAL">~~.EVAL     => 388
,[.,]  => 58
19     => 19

नियम:

  • आपके कार्यक्रम के लिए इनपुट में केवल मुद्रण योग्य ASCII वर्ण शामिल होंगे, अर्थात कोडपॉइंट्स 32 (स्पेस) से 126 (टिल्ड)।
    • सुविधा के लिए, यहां उन पात्रों की लंबाई की सूची है जिन्हें आपको संभालना है: [5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,15,20,17,8,12,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,13,19,5]
  • यहां एक संदर्भ कार्यक्रम है जिसका उपयोग आप अपने कार्यक्रम को स्कोर करने के लिए कर सकते हैं।
    • पीटर टेलर ने कहा है कि संदर्भ कार्यक्रम कुछ यूनिकोड वर्णों को सामान्य करता है । यह अभी भी सबसे समाधान के लिए काम करना चाहिए, लेकिन यदि आवश्यक हो तो इसे ठीक करने के लिए स्वतंत्र महसूस करें
  • चूंकि आप कह रहे हैं कि वास्तव में जो अक्षर दिखते हैं, आपका समाधान प्रदर्शित किए जाने वाले वर्णों द्वारा किया जाएगा, बाइट्स शामिल नहीं हैं। यह कस्टम एन्कोडिंग वाली भाषाओं में निर्देशित है।
    • आप यह मान सकते हैं कि मैंने पूरे यूनिकोड पुस्तकालय को याद कर लिया है और आप जो भी अजीब अक्षर उपयोग कर सकते हैं, कह सकते हैं।
  • सॉरी रोजम, लेकिन जवाबों को प्रदर्शन योग्य पात्रों से बना होना चाहिए। Unprintables ठीक हैं, मुझे सिर्फ पात्रों को ज़ोर से पढ़ने में सक्षम होना है।
  • आप जो भी करते हैं, अपने कार्यक्रम में उपयोग नहीं करते हैं ।

9
ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORMयह मेरे बच्चे का पूरा नाम होगा
क्विंटेक

1
यह कार्यक्रम वर्ड मोड में 6 स्कोर करता है: इसे ऑनलाइन आज़माएं!
नील

2
संदर्भ कार्यक्रम छोटी गाड़ी है। [इस परीक्षण] पर विचार करें ( tio.run/##dY5PC4JAEMXvfYphYcNsWcrSi@Ahrx3rlB223FTSXdk/ ... ) को इस \x[2126]रूप में गिना जाता है \x[3a9]
पीटर टेलर

जवाबों:


13

जावा 8, स्कोर 846 838 822 816

ௐ->ௐ.map(ˇ->Character.getName(ˇ).length()).sum()

-8 स्कोर के साथ @tsh के _1साथ धन्यवाद
-22 स्कोर का धन्यवाद @ ASCII- के साथ ˇऔर इसके $साथ ही

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

स्पष्टीकरण:

और ˇके बजाय इस्तेमाल कर रहे हैं sऔर cमैं सामान्य रूप से, का उपयोग करें क्योंकि छोटे अक्षरों हैं हैं सभी 20 (यानी LATIN SMALL LETTER S), लेकिन ( TAMIL OM) 8 और ˇ( CARON) 5 है।

ௐ->                         // Method with IntStream parameter and integer return-type
  ௐ.map(ˇ->                 //  Map each character to:
      Character.getName(ˇ)  //   Get the name of the character
               .length())   //   Get the length of that name
   .sum()                   //  And after the map: sum all lengths together,
                            //  and return it as result

1
मुझे पसंद है कि यह जावा सामान बाइट के मामले में 05AB1E उत्तर दोनों को कैसे हराता है और यह स्कोर की शर्तों ...
एरिक आउटगोलफर

@EriktheOutgolfer Ikr। बिलीव ने मुझे अनुमान लगाया। ;)
केविन क्रूज़सेन

@KevinCruijssen यह एक युगल बाइट्स को बचाता है जो आपके पास नहीं है push compressed integer 87235805968599116032550323044578484972930006625267106917841: P
Quintec

1
के बजाय का उपयोग _1कुछ अंक बचा होगा।
TSH

1
@ केविनक्रूजसेन पीटर टेलर का ( OHM SIGN) 8 अक्षर लंबा है। इसके अलावा, मुझे नहीं पता था कि यह मान्य नहीं था, क्योंकि यह C # में मान्य है और पीटर ने _1भी इसका इस्तेमाल किया था ( शॉर्ट वैरिएबल नाम खोजने के लिए प्रोग्राम , बॉक्स कैरेक्टर का इस्तेमाल नहीं किया जा सकता)
ASCII-only


7

जाप v2.0a1 -x, स्कोर 926 908 875 865 829 791 789

वर्णों के एक सरणी के रूप में इनपुट लेता है।

®cg`061742//0.450./..//.2/5117385`c+51 r\A_p26}  n# 

इसे आज़माएं या TIO पर सभी परीक्षण मामलों को चलाएं

( APOSTROPHEटीआईओ पर 6 वें परीक्षण मामले से हटा दिया गया क्योंकि जाप एक ही इनपुट स्ट्रिंग में सिंगल और डबल दोनों कोट्स को हैंडल नहीं कर सकता)


व्याख्या

®cg`...`c+51 r\A_p26}  n#      :Implicit input of character array
®                              :Map
 c                             :  Character code
  g                            :  Index into (0-based, with wrapping)
   `...`                       :    The string described below
        c+51                   :    Increment the codepoint of each by 51 (="8cKidj55gebbc9agh895c97a99baa9bba59ebhddMjfkh")
                               :    (Space closes the above method)
             r                 :    Replace
              \A               :      RegEx /[A-Z]/g
                _              :      Pass each match through a function
                 p26           :        Repeat 26 times
                    }          :      End function
                               :    (Space closes the replace method)
                               :  (Space closes the indexing method)
                       n       :  Convert to integer
                        #      :    From base 32 (note the trailing space)
                               :Implicitly reduce by addition and output

स्ट्रिंग का निर्माण

(स्कोर में प्रत्येक संशोधन को उलटने के लिए आवश्यक कदम और अतिरिक्त वर्ण शामिल हैं)

  1. सरणी ने 2161 का आधारभूत अंक दिया ।
  2. प्रत्येक पात्र को एक आधार में परिवर्तित करना >=23और एक स्ट्रिंग में शामिल होना 1832 का स्कोर था ।
  3. दोनों के साथ mऔर kएक एकल के साथ, अपरकेस चरित्र ने 963 स्कोर किया ।
  4. अभी भी बहुत सारे महंगे पत्र थे, इसलिए मैंने सभी पात्रों के कोडपॉइंट्स को कम करके उनसे छुटकारा पाने की कोशिश की। 5सबसे कम कोड बिंदु ( 53) के साथ चरित्र था, इसलिए मैंने 52 के साथ शुरू किया, जिसने 756 स्कोर किया
  5. सभी संख्याओं को आज़माने के बाद , जो स्ट्रिंग में कोई अक्षर नहीं छोड़ेंगे , 51ने 738 का सर्वश्रेष्ठ स्कोर दिया
  6. अंत में, थोड़े सस्ते बैकटिक्स के साथ उद्धरण चिह्नों की जगह 734 का स्कोर दिया । जाप में बैकटिक्स आमतौर पर एक संपीड़ित स्ट्रिंग को संलग्न और विघटित करने के लिए उपयोग किया जाता है, लेकिन सौभाग्य से, इस स्ट्रिंग के कोई भी पात्र, शोको की लाइब्रेरी में शामिल नहीं हैं

अंतिम स्ट्रिंग, इसलिए, निम्नलिखित कोड बिंदुओं पर वर्ण शामिल हैं:

[5,48,24,54,49,55,2,2,52,50,47,47,48,6,46,52,53,5,6,2,48,6,4,46,6,6,47,46,46,6,47,47,46,2,6,50,47,53,49,49,26,55,51,56,53]

4

05AB1E , स्कोर 963

Îv•Fδà‚<0?9½mΣ@×ƶC₁vc-™uΔ_ε'•21вεD3‹i22α₂и}}˜yÇ32-è+

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

Î               # Push 0 and the input-string
 v              # Loop `y` over the characters of this input-string:
  Fδà‚<0?9½mΣ@×ƶCvc-™uΔ_ε'•
               '#  Push compressed integer 87235805968599116032550323044578484972930006625267106917841
   21в          #  Converted to Base-21 as list: [5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,0,19,15,20,17,8,12,2,18,13,19,5]
    ε           #  Map over this list:
     D3i       #   If the value is smaller than 3:
         22α    #    Take the absolute difference of this value with 22
            ₂и  #    Repeat it 26 times as list
    }}          #  Close the if-statement and map
      ˜         #  Flatten the list
       yÇ       #  Get the unicode value of the current character
         32-    #  Subtract 32
            è   #  Index it into the list of integers
             +  #  And add it to the sum
                # (and output the sum implicitly as result after the loop)

इस 05AB1E टिप को देखें (यह समझने के लिए कि बड़े पूर्णांकों को कैसे संपीड़ित करें ? और पूर्णांक सूचियों को कैसे संपीड़ित करें? ) यह समझने के लिए कि क्यों •Fδà‚<0?9½mΣ@×ƶC₁vc-™uΔ_ε'•21вहै [5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,0,19,15,20,17,8,12,2,18,13,19,5]


4

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) (स्कोर 1627 1116 1096 1037 1019 902)

Ω=>Ω.Sum(ˇ=>(31&-ˇ)>5&ˇ>62?22-ˇ/91*2:"♁♌♊♇♇♈♅♆♌♍♄♅♁♈♅♃♆♅♅♇♆♆♅♇♇♆♁♅♊♇♍♉♉♏♋♐♍♄♈♎♉♏♁"[ˇ-6-ˇ/33*26]-9788)

यह बिना बिल्ट-इन डेटाबेस का उपयोग करता है: अक्षरों के लिए कुछ विशेष-आवरण और एक लुकअप टेबल।

ऑनलाइन टेस्ट सूट

यह खुद को स्कोर नहीं कर सकता है, क्योंकि अधिकांश वर्ण सीमा में नहीं हैं, जिसमें चर CARONऔर OHM SIGNराशि चिह्न शामिल हैं जो लुकअप तालिका को एन्कोड करने के लिए उपयोग किया जाता है।

ASCII- केवल कई सुझावों के लिए धन्यवाद ।


स्कोरिंग प्रोग्राम का आपने क्या उपयोग किया
ASCII-only

tio.run/##NZDrdpNAFIX/z1OMY0wgwhCg0NAEanpT22jVaquGiAQnYbgMhIHWGJO36gv0xSJrBf@cdS57r72@E3A54HR3UbFgyMuCsoVEWenM7d3To@08PeKbKhU82xG2suDJdgd2xLauikPNbLc9R9eONU32FFPtakeI5CyOExrly5CShC4iSuMoonEcEcriZZryrFyGSZFygiZebdP1rmZOZcsUdwMwzwriB6Fw7xfQh5RBRh4m0zVAIyRBRYGaBpCybw8BumYBgVWesVpb0pRgjPc3vXcAEE@qIscVo8xPCXccHGTpDPMqxdxf7XWG3gPoMruqifcLVauNz1wEn7detDuC2H0pyVjpqZp@YJiHfetoMLSd41ejk9Oz84vXb95eXo3fvb/@8PHTzecvt3dfv32fuO70h/fTnwW/yHwR0ihOUpbly4KX1f3D79Wf9d/NtskyLBWgs6yaJUQOQhLEcJVVBXRdDmukMiQw8XkJS1KXwOcEDsQG3TAAGtYU0EXDludst/j8djR20f@u@UK/D5A0wdK0oa1H1WrCLbARwV1BSzKmjAgttPYly9hAaDsQrueCL26QONj9Aw
ASCII-केवल

2
@ ASCII- केवल, मैंने नीचे पायथन उत्तर का उपयोग किया; जावा उत्तर 1627 भी देता है। समस्या यह लगती है कि संदर्भ समाधान छोटी गाड़ी है: U U + 2126, OHM SIGN , न कि GRE GRE CAPETET LETTER OMEGA।
पीटर टेलर

1
स्कोर 5 का नाम: ˇ, 8 से कम कोई अन्य नाम नहीं है जो C # स्वीकार करता है, जावा प्रोग्राम से भी सत्यापित नहीं है
ASCII- केवल

1
@ केविन, मेरे पहले की टिप्पणी के अनुसार संदर्भ कार्यान्वयन छोटी गाड़ी है। मुझे लगता है कि यह स्रोत चरित्र OHM साइन को GREEK कैपिटल लेटर OMEGA में बदलने के लिए सामान्यीकरण लागू कर रहा है।
पीटर टेलर

4

आर; स्कोर: 3330 1586 1443

बिल्ट-इन की कमी के कारण R में चुनौतीपूर्ण।

खैर कोड अब ज्यादातर @ Giuseppe है, लेकिन यह ठीक है। मैं ~ के साथ *, और बिंदु के साथ s को प्रतिस्थापित करके गोल्फ को एक छोटा सा संपादन करने में सक्षम था।

1443 के लिए इसे पाने के लिए @Nick कैनेडी के लिए धन्यवाद आर्कन जादू "संख्या क्रम का एक UTF8 एन्कोडेड संस्करण"

function(.)sum((c(+",752230178/0,30.1002110221,052844",61~26,+":6;8/3",59~26,+"94:,")-39)[+.-31]);`+`=utf8ToInt;`~`=rep

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


1769 अंक - मूल्यों को संपीड़ित करने के लिए एक न्यूनतम प्रयास करता है ...
Giuseppe

2
यह भी, utf8ToIntगोल्फिंग के लिए एक सुपर सहायक कमांड है :-) मैं एक या एक महीने के लिए पीपीसीजी पर नहीं रहा हूं, इसलिए आर में नए लोगों को गोल्फ देखना अच्छा है!
ग्यूसेप

आह, मेरे पास इसे संपीड़ित करने का एक तरीका था, लेकिन utf8ToInt के बारे में पता नहीं था। मुझे आज रात / कल इस पर काम करना होगा।
सीटी हॉल

1
यह कार्यक्रम के तहत बस कोड का अधिक लाइनों है / स्निपेट कि bytecount को प्रभावित नहीं करता - में कुछ परीक्षण करने के लिए उपयोगी
ASCII-केवल

1
1443 से नीचे: tio.run/##xc09DoIwFADgu3ShTR/… संख्या क्रम के UTF8 एन्कोडेड संस्करण का उपयोग करना।
निक कैनेडी



2

अटैच , 1934

Sum@{ToBase[FromBase[Ords@"!ZByru=#9fBYb$a3Si0^pU,ZP#3$cd'(c-_lhu]h(]5;!W|?M4:<_^sU;N&XFN`t:u"-32,95],23][Ords@_-32]}

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

सरल संपीड़न और अनुक्रमण।


: P एक शानदार लुकअप का उपयोग करता है (देखें C # उत्तर) स्कोर के साथ मदद करेगा। या यहां तक ​​कि सिर्फ एक charset का उपयोग करने के लिए जिसमें संपीड़ित करने के लिए पत्र नहीं होते हैं
ASCII- केवल

1

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) , स्कोर: 4007 3988 3759 3551 2551

ˇ=>ˇ.Sum(_=>new[]{5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,15,20,17,8,12,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,13,19,5}[_-32])

मैं ऊपर पीटर टेलर के समाधान से कुचल महसूस करता हूं। एक साधारण लुकअप टेबल इंगित करने के लिए पीटर टेलर का धन्यवाद मेरे पिछले शब्दकोश समाधान से बेहतर था।

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


यह एक प्रत्यक्ष लुकअप टेबल की तुलना में काफी खराब है: _1=>_1.Select(_2=>new int[]{5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,15,20,17,8,12,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,13,19,5}[_2-32]).Sum()स्कोर 2786।
पीटर टेलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.