कोड बिलियर्ड्स (लेवेंसहाइट गोल्फ)


24

किसी भी क्रम में, आप जो भी चाहते हैं , उन नौ कार्यों को करने वाले कार्यक्रमों को लिखने के लिए आपको एक भाषा का उपयोग करना चाहिए ।

  • एक इनपुट संख्या को आधार 10 से आधार 36 में परिवर्तित करें।
    • नमूना इनपुट: 1000
    • नमूना आउटपुट: RS(आउटपुट ऊपरी मामला होना चाहिए)
  • प्रत्येक वर्ण को एक स्ट्रिंग में उसके आधार 10 दशमलव ASCII कोड में परिवर्तित करें और साथ में समाहित कोड प्रिंट करें।
    • नमूना इनपुट: Scrambled 3GG5
    • नमूना उत्पादन: 839911497109981081011002051717153
  • निर्धारित करें कि इनपुट संख्या 1738 से विभाज्य है या नहीं।
    • यदि यह है और यह नहीं है तो एक मिथ्या मूल्य लौटाएं।
  • निर्धारित करें कि क्या किसी स्ट्रिंग में अक्षर qहै।
    • यदि यह करता है और यह नहीं है तो एक मिथ्या मूल्य लौटाएं।
  • +1 के सीज़र सिफर के साथ अक्षरों के एक इनपुट स्ट्रिंग को एनकोड करें।
    • केस को संरक्षित किया जाना चाहिए। गैर-अक्षर वर्ण बिना संशोधन के मुद्रित होंगे।
    • नमूना इनपुट: Good morning, World!
    • नमूना उत्पादन: Hppe npsojoh, Xpsme!
  • किसी संख्या के प्रमुख कारकों का योग खोजें और प्रिंट करें।
    • नमूना इनपुट: 1320
    • नमूना उत्पादन: 21
  • प्रिंट करें PPCG
  • पहले nपॉजिटिव पूर्णांक प्रिंट करें जो कि विभाज्य हैं floor(sqrt(n))
    • n एक इनपुट पूर्णांक है।
  • हर oऔर Oएक इनपुट स्ट्रिंग के साथ बदलें
    • नमूना इनपुट: Onomatopoeia
    • नमूना उत्पादन: ಠnಠmatಠpಠeia

आपने देखा होगा कि यह चुनौती है Code Billiards, नहीं Code Golf। इस चुनौती का उद्देश्य, बिलियर्ड्स की तरह, अपने कोड को सेट करना है ताकि इसे अगली चुनौती के लिए केवल थोड़ा संशोधित किया जा सके। यही कारण है कि आपके कार्यक्रमों को क्रम में उपरोक्त कार्यों को हल करने की आवश्यकता नहीं है।

आपका स्कोर निम्नानुसार निर्धारित किया जाता है

  • आपका 1बाइट आपके कार्यक्रमों में प्रत्येक बाइट द्वारा जाता है।
  • यदि आपके floor(n^(1.5))लगातार दो कार्यक्रमों में लेवेंसहाइट की दूरी है, तो आपका स्कोर बढ़ जाता है n। उदाहरण के लिए यदि आपका पहला कार्यक्रम है potatoऔर आपका दूसरा कार्यक्रम है taters, तो आपका स्कोर 12 से 12 बाइट तक और 11= floor(5^(1.5))5 के लेवेंसहाइट की दूरी तक जाता है।

इस चुनौती का उद्देश्य सभी नौ कार्यक्रमों के लिखे जाने के बाद जितना संभव हो उतना कम स्कोर होना है। मानक सीजी नियम लागू होते हैं।


लीडरबोर्ड देखने के लिए, "शो कोड स्निपेट" पर क्लिक करें, नीचे स्क्रॉल करें और "sn रन कोड स्निपेट" पर क्लिक करें। ऑप्टिमाइज़र द्वारा बनाया गया स्निपेट।


1
वाह ... मैं सचमुच कल रात एक चुनौती के लिए एक ही विचार था। कितना अजीब है ...
ETHproductions

@ETHproductions मुझे कल रात भी यही विचार मिला, और सैंडबॉक्स पर इसके बारे में कुछ लिखा। क्या आपका विचार वहाँ से आया है? यदि नहीं, तो संयोग वास्तव में अजीब है।
आर्कटुरस

1
नहीं, मुझे अंदाजा था जैसे मैं बिस्तर पर था। आपकी पोस्ट बिल्कुल नहीं देखी! मुझे लगता है कि यह "कोड-गोल्फ दिमाग एक जैसा लगता है" का एक उदाहरण है;)
ETHproductions

की Levenshtein दूरी की क्या है और a? क्या यह 1 है ( 1 चार के रूप में गिना जाता है) या 2 (क्योंकि वास्तव में 2 बाइट्स है)?
जकूबे

1
@Mego यहाँ एक तेज़ एल्गोरिथम है। :) इसके अलावा, आपने यह नहीं देखा होगा, लेकिन मेरे जवाब में एक स्निपेट है जो स्वचालित रूप से इष्टतम क्रम में कार्यक्रमों की व्यवस्था करता है, और यह सुपर-फास्ट एल्गोरिथ्म का भी उपयोग करता है।
ETHproductions

जवाबों:


8

जाप , 886 866 766 725 688 669

टास्क 5 और 6 हत्यारे हैं। शायद उन्हें पूरा करने के छोटे तरीके हैं। मुझे लगता है कि लेवेंसाइटिन की दूरी अभी भी कम हो सकती है।

  • टास्क 3 (विभाजन): !(U%#ۊ
    7 बाइट्स (अरबी चरस संरेखण में गड़बड़ी)
  • टास्क 4 ('q' चेक): U!=Uk'q7 बाइट्स, डिस्ट 11
  • टास्क 1 (आधार रूपांतरण): Us36 u6 बाइट्स, डिस्ट 14
  • टास्क 2 (ASCII कोड): UmX=>Xc7 बाइट्स, डिस्ट 14
  • टास्क 7 (खुद के लिए देखें): "PPCG"6 बाइट्स, डिस्ट 18
  • टास्क 9 (9 प्रतिस्थापन): Ur"[Oo]",'ಠ13 बाइट्स, डिस्ट 27
  • टास्क 8 (मंजिल (sqrt (n))): X=Uq f;XoU*X+1,X16 बाइट्स, डिस्ट 52
  • टास्क 6 (मुख्य कारक योग): 2oU fX=>2oX eY=>X%Y &&!(U%X)r(X,Y =>X+Y39 बाइट्स, डिस्टर्ब 172
  • टास्क 5 (सीज़र सिफर): UmX=>128o mY=>Yd)a k'A i#Z,'A k'a i#z,'a gXc44 बाइट्स, डिस्ट 216

यहाँ एक स्निपेट है जो आपको बताएगा (एक) आपके कार्यक्रमों को व्यवस्थित करने के सबसे कुशल तरीके:

Japt के नवीनतम संस्करण (इस चुनौती में गैर-प्रतिस्पर्धात्मक) के साथ, अधिकांश कार्य छोटे हो जाते हैं:

  • टास्क 1: s36 u5 बाइट्स
  • टास्क 2: mc2 बाइट्स
  • टास्क 3: v#ۊ
    4 बाइट्स
  • टास्क 4: oq2 बाइट्स
  • टास्क 5: ;B±B+C²UrF,@Bg1+BbX19 बाइट्स
  • टास्क 6: k â x5 बाइट्स
  • टास्क 7: "PPCG5 बाइट्स
  • टास्क 8: B=U¬f)oU*B+1B13 बाइट्स
  • टास्क 9: ro'ಠ'i6 बाइट्स

इष्टतम क्रम अब 2,4,3,1,6,7,9,8,5 है, जो 217 के एक मजबूत स्कोर पर आ रहा है , मूल के एक तिहाई से भी कम!

सुझावों का स्वागत है!


7

पायथ, स्कोर 489

आधार रूपांतरण: १५

s@L+s`MTrG1jQ36

सीज़र सिफर: 13 + 11 ^ 1.5

u.rGHrBG1z 36

1738 से विभाज्य: 7 + 11 ^ 1.5

!%Q1738

पहला एन पॉजिटिव पूर्णांक: 8 + 8 ^ 1.5

*Rs@Q2SQ

मुख्य कारकों का योग: 4 + 6 ^ 1.5

s{PQ

स्ट्रिंग में क्ष की उपस्थिति: 4 + 4 ^ 1.5

}\qz

सभी ASCII कोड मिलाएं: 5 + 4 ^ 1.5

jkCMz

"पीपीसीजी" प्रिंट करें: 5 + 5 ^ 1.5

"PPCG

इसके साथ बदलें : 9 + 7 ^ 1.5

Xz"oO"\ಠ

3

रूबी, 1488

शायद यहाँ सुधार के लिए बहुत जगह है। स्कोर की गणना करने में सबसे अधिक समय बिताया ...

प्रमुख कारकों का योग : 64
require'prime';p gets.to_i.prime_division.reduce(0){|s,a|s+a[0]}
बेस 36 : 30 + 47 1.5 = 352
puts gets.to_i.to_s(36).upcase
1738 से विभाज्य : 22 + 15 1.5 = 80
puts gets.to_i%1738==0
PPCG प्रिंट करें : 9 + 18 1.5 = 85
puts:PPCG
स्ट्रिंग शामिल है q? : १० + + १.५ = ३२
p gets[?q]
बदलेंo : 23 + 16 1.5 = 87
puts gets.gsub(/o/i,?ಠ)
सीज़र सिफर : 32 + 21 1.5 = 128
puts gets.tr 'A-Za-z','B-ZAb-za'
ASCII कोड : 37 + 26 1.5 = 169
puts gets.chomp.chars.map(&:ord).join
वर्गमूल द्वारा विभाजित किए गए पूर्णांक : 72 + 56 1.5 = 491
puts *(1..1/0.0).lazy.select{|i|i%Math.sqrt(i).floor==0}.take(gets.to_i)

यदि आप अपने कार्यक्रमों को लैम्ब्डा में परिवर्तित करते हैं तो आपको सुधार मिल सकता है
न कि चार्ल्स

3

जावा, स्कोर 8331

उन्हें लेवेनशीन दूरी मेरे स्कोर को यहाँ मार रही है।

(ये प्रोग्राम कमांड लाइन आर्ग्युमेंट के रूप में इनपुट लेते हैं)

कार्यक्रम 1 (119):

class L{public static void main(String[]a){System.out.print(Integer.toString(Integer.parseInt(a[0]),36).toUpperCase());}}

कार्यक्रम 2 (120 + 56 1.5 = 539):

class L{public static void main(String[]a){/*System.out.print*/for(char b:a[0].toCharArray())System.out.print((int)b);}}

कार्यक्रम 3 (101 + 49 1.5 = 444):

class L{public static void main(String[]a){System.out.print/*for*/(Integer.parseInt(a[0])%1738==0);}}

कार्यक्रम 4 (108 + 20 1.5 = 197):

class L{public static void main(String[]a){System.out.print(/*forInteger.parseInt(*/a[0].indexOf('q')>=0);}}

कार्यक्रम 5 (186 + 107 1.5 = 1293):

class L{public static void main(String[]a){for(char b:a[0].toCharArray())System.out.print(Character.isLetter(b)?Character.isUpperCase(b)?b>'Y'?'A':(char)(b+1):b>'y'?'a':(char)(b+1):b);}}

कार्यक्रम 6 (327 + 228 1.5 = 3747):

class L{public static void main(String[]a){int i,k=0,j=i=Integer.parseInt(a[0]);for(;i>0;i--)if(p(i)&&j%i==0)k+=i;System.out.print(k);}static boolean p(int n){if(n<2)return 0>0;if(n==2||n==3)return 1>0;if(n%2==0||n%3==0)return 0>0;int i,k=(int)Math.sqrt(n)+1;for(i=6;i<=k;i+=6)if(n%(i-1)==0||n%(i+1)==0)return 0>0;return 1>0;}}

कार्यक्रम 7 (336 + 10 1.5 = 368)

class L{public static void main(String[]a){/*int i,k=0,j=i=Integer.parseInt(a[0]);for(;i>0;i--)if(p(i)&&j%i==0)k+=i;*/System.out.print("PPCG");}static boolean p(int n){if(n<2)return 0>0;if(n==2||n==3)return 1>0;if(n%2==0||n%3==0)return 0>0;int i,k=(int)Math.sqrt(n)+1;for(i=6;i<=k;i+=6)if(n%(i-1)==0||n%(i+1)==0)return 0>0;return 1>0;}}

कार्यक्रम 8 (351 + 34 1.5 = 549):

class L{public static void main(String[]a){int i,k=1,j=(int)Math.sqrt(i=Integer.parseInt(a[0]));for(;k<i;k++)/*if(p(i)&&j%i==0)k+=i;*/System.out.println(j*k);}static boolean p(int n){if(n<2)return 0>0;if(n==2||n==3)return 1>0;if(n%2==0||n%3==0)return 0>0;int i,k=(int)Math.sqrt(n)+1;for(i=6;i<=k;i+=6)if(n%(i-1)==0||n%(i+1)==0)return 0>0;return 1>0;}}

कार्यक्रम 9 (305 + 84 1.5 = 1075):

class L{public static void main(String[]a){int i,k=1,j=0;System.out.print(a[0].replaceAll("o|O",""+(char)3232));}static boolean p(int n){if(n<2)return 0>0;if(n==2||n==3)return 1>0;if(n%2==0||n%3==0)return 0>0;int i,k=(int)Math.sqrt(n)+1;for(i=6;i<=k;i+=6)if(n%(i-1)==0||n%(i+1)==0)return 0>0;return 1>0;}}

3
यह जावा है। आपको थोड़ी देर स्कोर उम्मीद नहीं करनी चाहिए ...;)
kirbyfan64sos

इंटरफ़ेस l {स्टेटिक शून्य मेन (स्ट्रिंग ...
रोहन झुनझुनवाला

1

पायथ, स्कोर 817

नंबर 1: 24

Jjk+UTrG1VjKvz36=+k@JN;k

संख्या 2: (9 + 16 1.5 = 73)

Vz=+kCN;k

संख्या 3: (5 + 8 1.5 = 27)

/QC"ۊ

संख्या 4: (5 + 14 1.5 = 57)

hxz\q

संख्या 5: (39 + 37 1.5 = 264)

J+GrG1VzIhxJNKChCNIhxJKpK)EpC-CK26))EpN

संख्या 6: (4 + 39 1.5 = 247)

s{PQ

संख्या 7: (5 + 4 1.5 = 13)

"PPCG

संख्या 8: (12 + 12 1.5 = 53)

VK/@Q2 1*KhN

संख्या 9 (13 + 13 1.5 = 59)

j\ಠcj\ಠcz\o\O

सबसे अच्छा नहीं, मैंने आज ही सीखना शुरू कर दिया था और सोचा था कि मैं इसे आजमाऊंगा, नंबर 5 ने वास्तव में मेरे स्कोर को मार दिया, मुझे लगता है कि मैं उनमें से कुछ को छोटा कर सकता हूं लेकिन इससे मुझे दूरी पर और नुकसान होगा। अधिक अनुभवी अजगर उपयोगकर्ताओं से किसी भी सुझाव की सराहना की है।


नंबर 6 वास्तव में मेरे स्कोर को मार दिया है। खैर, संख्या 5, 6, और 9.
सुपरजेडिए 224

@ SuperJedi224 आप कार्यक्रमों का क्रम बदल सकते हैं। उदाहरण के लिए, यहां 5 और 7 स्विच करने से स्कोर थोड़ा कम होगा।
आर्कटुरस

@ ईडन प्रतीक्षा करें, आप ऐसा कर सकते हैं? मुझे लगता है कि मैं इस दोपहर को करूँगा।
SuperJedi224

@ SuperJedi224 You must use one language to write programs that perform the following nine tasks, in any order.शुभकामनाएँ!
आर्कटिकस

3
5 + 14^1.519 नहीं है
जकूबे

-1

पायथन 3 (वर्तमान में अमान्य), 621 बाइट्स

from numpy import base_repr
import math
print(base_repr(int(input()),36))
print("".join([str(ord(c)) for c in input()]))
if int(input())%1738 == 0:print(True)
else:print(False)
if "q" in input().lower():print(True)
else:print(False)
t=bytes.maketrans(b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",b"bcdefghijklmnopqrstuvwxyzaBCDEFGHIJKLMNOPQRSTUVWXYZA")
print(input().encode("utf-8").translate(t).decode("utf-8"))
print("PPCG")
n=int(input())
for i in range(1,n):
    if i%math.floor(i**0.5)==0:print(i,end=" ")
print("")
y=input()
z=""
for i in y:
    if i.lower()=="o":z+="0"
    else:z+=i
print(z)

वास्तव में यह अच्छा कोड नहीं है लेकिन कुछ हद तक काम करता है: डी। मुख्य कारकों का योग काम नहीं कर रहा है। मुझे हमेशा आपके उदाहरण से एक अलग परिणाम मिलता है इसलिए मैंने इसे हटा दिया। इसके अलावा पायथन चार का समर्थन नहीं करता है, इसलिए यह oएस के साथ 0एस को बदल देता है

आईओ जानकारी:

पहला इनपुट: आधार 10 में इंट | आउटपुट: बेस 36 में वह संख्या

दूसरा इनपुट: एक तार | आउटपुट: स्ट्रिंग के Ascii संख्या

तीसरा इनपुट: पूर्णांक | आउटपुट: संख्या 1738 से विभाजित होने पर निर्भर करता है

4 इनपुट: स्ट्रिंग | आउटपुट: यदि स्ट्रिंग में "क्ष" है तो टी या एफ निर्भर करता है

5 वाँ इनपुट: स्ट्रिंग | आउटपुट: स्ट्रिंग के कैसर सिफर +1

6: बस "पीपीसीजी" का शाब्दिक अनुवाद करता है

7 वां इनपुट: इंट एन | आउटपुट: फर्श से विभाज्य पहला n ints (sqrt (n))

8 वाँ इनपुट: स्ट्रिंग | आउटपुट: o0 के साथ सभी s को बदला गया (ಠ के साथ नहीं क्योंकि अजगर उस चरित्र का समर्थन नहीं करता है, बहुत पागल मत बनो :))


अरे हां। क्या आप कृपया प्रमुख कारकों की गणना करने की एक बुनियादी व्याख्या कर सकते हैं क्योंकि मुझे हमेशा आपके उदाहरण में एक अलग परिणाम मिलता है।
19

13
प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है! यह चुनौती की आवश्यकताओं को पूरा नहीं करता है क्योंकि चुनौती प्रत्येक कार्य के लिए एक अलग कार्यक्रम का अनुरोध कर रही है। इसके अतिरिक्त, आपको इस चुनौती के लिए स्कोरिंग नियमों का पालन करना होगा, विशेष रूप से लेवेंसहाइट दूरी फ़ंक्शन को ध्यान में रखते हुए।
AdmBorkBork

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