आर कोड की सबसे खराब रेखा क्या है जो अभी भी पर्स करती है?


19

लक्ष्य आर कोड की एक पंक्ति का उत्पादन करना है:

  1. जितना संभव हो उतना कम
  2. अधिक से अधिक वर्णों में (अधिकतम 100 वर्ण)
  3. और जितना संभव हो उतना बदसूरत है (जहां "बदसूरत" का अर्थ अक्षम कम्प्यूटेशनल रणनीतियों, विलोपित पात्रों जैसे कि एक समाप्ति अर्धविराम और इसके आगे लिया जा सकता है)।

अपना सबसे बुरा, कोमलता से करो!

जीतने के लिए उद्देश्य मानदंड

जीतने वाले उत्तर को निम्नलिखित बिंदु पैमाने के अनुसार आंका जाएगा (सबसे अधिक अंक जीत के साथ उत्तर):

  • 0 से 10 तक एक क्रम उत्पन्न करें ( 100 अंक)
  • अधिक से अधिक वर्णों (N) में संभव है
    • 0 अंक यदि एन = 100
    • एन < 100 अंक अगर एन <100 (यानी 100 के तहत हर चरित्र के लिए एक बिंदु खो)
    • 2 (100-N) अंक अगर N> 100 (यानी 100 से अधिक प्रत्येक वर्ण के लिए दो अंक खोते हैं)
  • आर इन्फर्नो से यथासंभव नकारात्मक उदाहरणों का उपयोग करना
    • 6 अंक प्रति उद्धृत उदाहरण
    • प्रत्येक उदाहरण केवल एक बार गिना जाता है। ऐसा इसलिए है क्योंकि "[a] ज्वलंत मकबरे में कैद एक" विधर्मी केवल एक बार में इतना कैद हो सकता है। इस प्रकार कोड की अपनी लाइन में दो वैश्विक असाइनमेंट आपको केवल 6 अंक मिलते हैं।

एक उद्देश्य जीतने के मापदंड नहीं। एफएक्यू देखें।
dmckee

4
आपको @dmckee :) मानदंड बहुत ही उद्देश्यपूर्ण हैं
टॉमस

मैंने मानदंडों को और भी स्पष्ट करने का प्रयास किया है। यदि मानदंड 3 अभी भी पर्याप्त उद्देश्य नहीं है, तो मैं इसे समाप्त कर सकता हूं, हालांकि मुझे यह पसंद है।
अरी बी। फ्रीडमैन

मैं नए स्कोरिंग सिस्टम को बिल्कुल नहीं समझता। उद्देश्य 2 जितना संभव हो उतना लंबा होना चाहिए (अधिकतम 100 वर्णों के अधीन), और आप 100 के करीब होने के लिए कम अंक देते हैं (और 100 ?? से अधिक लंबे कार्यक्रमों के लिए अंक निर्दिष्ट करते हैं!)। उद्देश्य 3 जितना संभव हो उतना कुरूप होना चाहिए, और आप बदसूरत कार्यक्रमों के लिए अधिक अंक देते हैं। तो अंक अच्छा या बुरा माना जाता है ?!
पीटर टेलर

@PeterTaylor ने बताया कि दोनों उद्देश्य # 2 सूत्र नकारात्मक अंक उत्पन्न करते हैं। अंक अच्छे हैं: "सबसे अधिक अंकों के साथ उत्तर जीतता है"।
अरी बी। फ्रीडमैन

जवाबों:


25

72 96 वर्ण।

`c`<-function(...){list(...)[[-1]];}->>`c`;`[`=0;`]`=10;c(c,c)(c,c)(c,invisible)(`[`[]:`]`[])[];

कुरूपता:

  • एक मानक फ़ंक्शन नाम का पुन: उपयोग करना
  • चर नामों के रूप में प्रतीकों का उपयोग करना
  • वैश्विक असाइनमेंट
  • सही काम
  • फ़ंक्शन का स्व-पुनर्वित्त
  • अनावश्यक अनुगामी अर्धविराम
  • अनावश्यक उप-स्क्रिप्टिंग संख्या
  • चर नाम का अनावश्यक उद्धरण
  • राज्य में कार्यक्षेत्र छोड़ता है जो लगभग निश्चित रूप से किसी भी बाद के कोड रन को तोड़ देगा

अनुक्रम 0-10 उत्पन्न करता है (विचार करने के लिए एंड्री के लिए धन्यवाद)।

उत्पादन:

 [1]  0  1  2  3  4  5  6  7  8  9 10

4
यह वास्तव में निर्वासित है। यह पहली बार है जब मैंने उस शब्द का उपयोग तारीफ के रूप में किया है। दूसरी ओर, यह किसी के लिए काम का एक उत्कृष्ट हिस्सा है, जो किसी को गंभीर आलोचना से दूर करने और सीखने के लिए है। अच्छा कार्य।
Iterator

प्रतिभाशाली। मेरे सिर के ऊपर, बदसूरत संख्या 3,4,5,8,9 Inferno में हैं। इसलिए ग्रेडिंग मानदंड से 96 + 6 * 5 = 126 अंक है।
अरी बी। फ्रीडमैन

शानदार समाधान। एक और कुरूपता + 100 वर्ण जोड़ा। सभी "एकल उद्धरणों के साथ बदलें"। एम्बेडिंग मुद्दों के साथ।"<-"("c",function(...){list(...)[[-1]];}->>"c");"["=0;"]"=10;c(c,c)(c,c)(c,invisible)("["[]:"]"[])[]
नमस्ते

7

0 से 10 तक एक अनुक्रम उत्पन्न करें।

100 अक्षर

{.=0;for(`~1` in c(1,2,3,4,5,6,7,8,9,10)){.=c(., `~1`,recursive=F)};print(unname(.[drop=T]));rm(.)}
 [1]  0  1  2  3  4  5  6  7  8  9 10

5

100 अक्षर: १ से १० तक का क्रम उत्पन्न करें।

ध्यान दें कि संख्या 2-10 कोड में नहीं हैं ... - बोनस अंक? :-)

यह भी ध्यान दें कि यह lapplyअधिकतम प्रदर्शन के लिए उपयोग करता है :)

unlist(lapply(LETTERS[-(11:26)],function(x) as.integer(charToRaw(x))-as.integer(charToRaw('A'))+1L))
#[1]  1  2  3  4  5  6  7  8  9 10 

2

100 अक्षर

assign("a",1:10);b<<-paste(c(a),collapse=";");unlist(lapply(strsplit(b,";")[[1]],function(c)c[[1]]))

सुनिश्चित नहीं हैं कि अगर lapplyपरstrsplit एक नकारात्मक उदाहरण है लेकिन यह सुनिश्चित किया जाना चाहिए।

एक चरित्र के रूप में वापसी:

 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

1
I(cumsum(Reduce("sum", replicate(paste0(as.integer(T),as.integer(T)), T), accumulate=1-F) - T >0))

100 वर्णों से थोड़ा कम होना चाहिए और किसी तरह 0:10 का उत्पादन करना चाहिए


1
मैं 98 के माध्यम से ncharगिनती, रिक्त स्थान की गिनती। हालांकि मेरे सिस्टम पर replicateएक चरित्र वेक्टर को एक लंबाई तर्क के रूप में नहीं लिया जा सकता है।
अरी बी। फ्रीडमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.