हालांकि थोरो ने फेंक दिया, ट्रोल कठिन गर्तों के माध्यम से फेंकता है


19

इन नौ समान शब्दों में से प्रत्येक के लिए, किसी भी तरह से 1-9 नंबर असाइन करें जो आपको पसंद है:

though
through
thorough
Thoreau
throw
threw
trough
tough
troll

एक स्ट्रिंग में एक कार्यक्रम लिखें। यदि इनपुट इन नौ शब्दों में से एक है, तो उस नंबर को आउटपुट करें जिसे आपने इसे सौंपा है। यदि इनपुट ऊपर दिए गए शब्दों में से एक नहीं है, तो प्रोग्राम कुछ भी कर सकता है (त्रुटि या लूप सहित हमेशा के लिए)।

शब्द संवेदनशील हैं, उदाहरण के लिए Thoreau, 1-9 से एक संख्या का उत्पादन करना चाहिए, लेकिन thoreauजरूरी नहीं कि ऐसा ही होगा।

उदाहरण

मान लीजिए कि आप संख्याएँ इस प्रकार हैं:

though   9
through  2
thorough 7
Thoreau  6
throw    3
threw    5
trough   4
tough    1
troll    8

फिर जब toughइनपुट होता है, तो 1आउटपुट होना चाहिए।
जब throughइनपुट होता है, 2तो आउटपुट होना चाहिए।
जब throwइनपुट होता है, 3तो आउटपुट होना चाहिए।
। । ।
जब thoughइनपुट होता है, 9तो आउटपुट होना चाहिए।

अन्य सभी इनपुट कुछ भी कर सकते हैं।

विवरण

  • स्टड या कमांड लाइन और आउटपुट को स्टडआउट के माध्यम से इनपुट स्ट्रिंग लें।
  • आउटपुट में एक एकल अनुगामी न्यूलाइन हो सकती है।
  • एक कार्यक्रम के बजाय, आप एक फ़ंक्शन लिख सकते हैं जो एक स्ट्रिंग में लेता है और परिणाम को सामान्य रूप से प्रिंट करता है या इसे वापस करता है।
  • बाइट्स में सबसे कम सबमिशन जीतता है

1
इसे रफू करें! जब मेरे पास पायथन स्ट्रिंग findविधि का उपयोग करके नहीं पाया गया, तो उत्पादन को शून्य करने का एक चतुर समाधान था । फिर नियम बदल गए। चतुर विचार अब इतना चालाक नहीं है।
लॉजिक नाइट

@CarpetPython मेरा वास्तव में बुरा है। यदि आप परिवर्तन से असंतुष्ट महसूस करते हैं तो निराश न हों। (हालांकि मैं हर किसी से वादा करता हूं कि कोई और बदलाव नहीं होगा।)
केल्विन के शौक

ठीक है। मुझे लगता है कि मेरा जवाब अभी भी मान्य है (हालांकि मैं थोड़ा क्रियात्मक हूं)।
लॉजिक नाइट

क्या मैं इसे पूंजीकरण की परवाह किए बिना काम कर सकता हूं?
ASCIIThenANSI

2
@ASCIIThenANSI जब तक 9 मामलों के लिए काम करता है
केल्विन के शौक

जवाबों:


19

सीजेएम, 11 9 7 बाइट्स

q1b2+B%

यह कैसे काम करता है :

हम इस तथ्य का उपयोग कर रहे हैं कि एएससीआईआई कोड + 11 का योग 11 के साथ 1 का बहुत अच्छा क्रम देता है और 9 संबंधित शब्दों के लिए 10 होता है। यहाँ आदेश है:

through -> 1
thorough -> 2 
tough -> 3 
Thoreau -> 4 
throw -> 5 
threw -> 6 
trough -> 7 
though -> 8 
troll -> 9

कोड स्पष्टीकरण :

q               e# Read the input
 1b             e# Sum the ASCII code values of all characters in this word
   2+           e# Increment the sum by 2
     B%         e# Mod by 11 and automatically print the mod result at the end

4 बाइट्स ने उपयोगकर्ता 23013 को धन्यवाद दिया

इसे यहाँ ऑनलाइन आज़माएँ


हम इसे कैसे आज़माएँगे? (हर कोई CJam बोलता है, हम में से कुछ lolcode बात)
behrooz

@Behrooz एक लिंक है। उस पर क्लिक करें, इनपुट अनुभाग में अपना इनपुट डालें, भागो। यकीन नहीं होता कि यह कैसे आसान हो सकता है :)
ऑप्टिमाइज़र

होली बकवास, मैं सोच रहा था कि मैं इसे शब्दों की सूची कैसे दूं। एक अच्छा
Behrooz

1
@ user23013 धिक्कार है! हर बार!
ऑप्टिमाइज़र

2
या q1b2+B%
jimmy23013

18

पायथ, 8 वर्ण

e%Cz8109

इसे ऑनलाइन आज़माएँ: प्रदर्शन या टेस्ट सूट

मैं असाइनमेंट का उपयोग कर रहा हूं:

though   5
through  9
thorough 4
Thoreau  7
throw    3
threw    2
trough   8
tough    6
troll    1

स्पष्टीकरण:

   z       input()
  C        convert to int (convert each char to their ASCII value
           and interprete the result as number in base 256)
 %  8109   modulo 8109
e          modulo 10

Btw, मुझे इस स्क्रिप्ट का उपयोग करके जादुई संख्या 8109 मिली fqr1 10Sme%CdT.z1:।


क्या इससे झूठी-सकारात्मक बातें नहीं होंगी?
एलेक्जेंडर-ब्रेट

5
@ अलेक्जेंडर-ब्रेट वास्तव में आपका क्या मतलब है? अन्य सभी इनपुट का आउटपुट ओपी में निर्दिष्ट नहीं है। हम अपनी इच्छानुसार कुछ भी आउटपुट कर सकते हैं।
जकुबे

क्षमा करें, मुझे वह ओपी संपादित करना याद आ गया। यह शर्म की बात है: पी
अलेक्जेंडर-ब्रेट

11

पायथन 2, 92 54 बाइट्स

print'K{7j)yE<}'.find(chr(hash(raw_input())%95+32))+1

सूचकांक स्ट्रिंग के साथ बनाया गया है for word in words: print chr(hash(word)%95+32),। जैसा कि जकूबे के उत्तर में बताया गया है, हैश फ़ंक्शन पायथन संस्करण के आधार पर अलग-अलग परिणाम देगा। यह सूचकांक स्ट्रिंग 64 बिट पायथन 2.7.6 पर गणना की जाती है।

लंबा (92 बाइट्स) लेकिन कम गूढ़ उत्तर:

print'though through thorough Thoreau throw threw trough tough troll'.find(raw_input())/7+1

हालांकि इस क्रम में थोरो द्वारा फेंके गए गर्त कठिन ट्रोल के माध्यम से 1-9 तक कार्यक्रम वापस आ गए । जब इनपुट नहीं मिलता है, तो खोजें -1 वापस आ जाएगा जो कि सुविधापूर्वक शून्य में बदल जाता है +1


ध्यान दें कि 0सामान की आवश्यकता नहीं है। इसे आप पर बदलने के लिए क्षमा करें।
केल्विन के शौक

प्रयास को नोटिस करने के लिए धन्यवाद। थोड़ी देर के लिए यह एक अच्छा समाधान था ...
तर्क नाइट

3
@CarpetPython फर्श-विभाजन का अच्छा उपयोग - यह आश्चर्यजनक रूप से बड़े करीने से काम करता है।
xnor

7

पायथन 2.7.9 32 बिट संस्करण, 22 बाइट्स

lambda x:hash(x)%78%10

ध्यान दें, यहां संस्करण वास्तव में महत्वपूर्ण है। यदि आपके पायथन के 64 बिट संस्करण का उपयोग करके आपको अलग-अलग परिणाम मिलेंगे। चूंकि hashविधि 32 बिट के बजाय 64 बिट हैश मानों की गणना करेगी।

असाइनमेंट है:

though  => 5   through => 6   thorough => 8
Thoreau => 7   throw   => 3   threw    => 1
trough  => 9   tough   => 4   troll    => 2

इसे ऑनलाइन आज़माएं: http://ideone.com/Rqp9J8


2
वाह, तो यह सब समय, आप भाषा संस्करणों और ऑपरेटिंग सिस्टम बिट्स के माध्यम से पुनरावृत्ति कर रहे थे? : पी
ऑप्टिमाइज़र

1
बहुत अच्छा जवाब। क्या आपने गणित, स्वचालित पुनरावृत्ति, या कुछ अनुमानों के माध्यम से निरंतर 78 पाया?
लॉजिक नाइट

3
@CarpetPython बस एक सरल जानवर-बल पाश है जो सभी संभव मॉड्यूल से गुजरता है। एक बार sorted(...)==range(1,10), मैं रुक गया।
जकुबे १

5

अजगर, 7 बाइट्स

et%Cz31

मैं निम्नलिखित असाइनमेंट का उपयोग कर रहा हूं:

though   8
through  3
thorough 1
Thoreau  5
throw    4
threw    7
trough   6
tough    2
troll    9

Czआधार 256 नंबर के रूप में इनपुट की व्याख्या करता है। फिर, हम इस मॉड को ३१ लेते हैं, १ घटाते हैं, और रिजल्ट मॉड १० लेते हैं। समतुल्य छद्मकोश:

((base_256(input()) % 31) - 1) % 10

प्रदर्शन , परीक्षण दोहन


1

पायथन 2, 27 बाइट्स

f=lambda w:int(w,34)%444/46

इस कार्य के साथ:

>>> for w in "though through thorough Thoreau throw threw trough tough troll".split(): print f(w),w
...
9 though
7 through
3 thorough
8 Thoreau
2 throw
5 threw
6 trough
1 tough
4 troll

कई बदलाव संभव हैं, उदाहरण के लिए

f=lambda w:int(w,35)/159%10

1

जाप , 6 बाइट्स

nH %BÉ

कोशिश करो | सभी शब्दों की जाँच करें


व्याख्या

इस तथ्य का लाभ उठाता है कि, जब एक आधार- nस्ट्रिंग को पूर्णांक में पार्स करते हैं, तो जावास्क्रिप्ट पार्सिंग को रोक देगा यदि यह एक अंक से अधिक होता है nऔर परिणाम को उस बिंदु तक लौटाता है। यहाँ बेस -32 का उपयोग करके (अंक 0-v) w"थ्रो" और "थ्रो" में से एस को अनिवार्य रूप से अनदेखा किया जाता है।

nH      :Convert from base-32
   %B   :Modulo 11
     É  :Subtract 1

जावास्क्रिप्ट, 22 बाइट्स

एक सीधा अनुवाद - इसे अलग से पोस्ट करने लायक नहीं लगता।

f=
U=>parseInt(U,32)%11-1
o.innerText=["through","tough","troll","trough","though","throw","threw","thorough","Thoreau"].map(s=>f(s)+": "+s).join`\n`
<pre id=o><pre>



0

जावा 8, 53 25 बाइट्स

s->(s.chars().sum()+2)%11

या

s->-~-~s.chars().sum()%11

पोर्ट ऑफ़ @ ऑप्टीमाइज़र सीजेम उत्तर, क्योंकि यह (सबसे अधिक संभावना है) जावा में किसी भी छोटे से नहीं किया जा सकता है।

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


जावा है parseInt, है ना? क्या मेरे समाधान का एक पोर्ट छोटा नहीं होगा?
झबरा

@ शैगी जावा वास्तव में है parseInt आधार दिया गया है, लेकिन दुर्भाग्य से यह स्थिर वर्ग की आवश्यकता के कारण काफी बाइट-अत्यधिक है: Long.parseLong(...,32)सबसे छोटे संस्करण के रूप में। इसके अलावा, यह जावा "throw"(और "threw"साथ ही) किसी कारण से विफल होने लगता हैwऐसा लगता है कि बेस -32 रेंज के बाहर है (और 33 का उपयोग गलत परिणाम देता है)।
केविन क्रूज़सेन

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