फ्रेंकस्टीन के राक्षस का नाम


15

परिचय:

चूंकि यह लगभग हेलोवीन है, मैं सिर्फ कुछ यादृच्छिक हेलोवीन-थीम वाली चुनौतियों के बारे में सोच रहा था। आखिरकार मैं फ्रेंकस्टीन के विकिपीडिया पृष्ठ के माध्यम से पढ़ रहा था , और निम्नलिखित पाठ में आया:

प्राणी

फ्रेंकस्टीन की अपनी रचना को खारिज करने का एक तथ्य यह है कि वह इसे एक नाम नहीं देता है, जो पहचान की कमी का कारण बनता है। इसके बजाय इसे "अर्थ", "राक्षस", "प्राणी", "दानव", "शैतान", "उग्र", और "यह" जैसे शब्दों से संदर्भित किया जाता है। जब फ्रेंकस्टीन अध्याय 10 में प्राणी के साथ बातचीत करता है, तो वह इसे "विले कीट", "घृणित राक्षस", "उग्र", "मनहूस शैतान" और "घृणास्पद शैतान" के रूप में संबोधित करता है।

स्रोत

चुनौती:

दो पूर्णांकों (वर्ष और अध्याय) को देखते हुए, निम्नलिखित नियमों के आधार पर एक स्ट्रिंग का उत्पादन करें:

  1. साल 1818 की तुलना में कम है, तो: उत्पादन में रिक्त स्ट्रिंग
  2. यदि वर्ष ठीक 1818 है और अध्याय 10 से नीचे है: सूची से एक यादृच्छिक स्ट्रिंग आउटपुट करें["wretch", "monster", "creature", "demon", "devil", "fiend", "it"]
  3. यदि वर्ष ठीक 1818 है और अध्याय 10 या अधिक है: सूची से एक यादृच्छिक स्ट्रिंग का उत्पादन करें["vile insect", "abhorred monster", "fiend", "wretched devil", "abhorred devil"]
  4. 1818 से ऊपर का वर्ष है (और इस तरह पुस्तक प्रकाशित हुई), वापसी "Frankenstein's Monster"

चुनौती नियम:

  • आप चुन सकते हैं कि क्या लोअरकेस, अपरकेस या एक संयोजन में आउटपुट करना है।
  • वर्ष हमेशा सीमा में रहेगा 1500-2017
  • अध्याय हमेशा सीमा में रहेगा 1-24(यदि मैं सही तरीके से गुगला गया तो पुस्तक में 24 अध्याय हैं)
  • विकल्प 1 के लिए कोई रिक्त स्ट्रिंग outputting के बजाय, आप भी उत्पादन करने की अनुमति है null, undefined, false,0 , या अपनी पसंद के किसी भी अन्य मूल्य नहीं अन्य तीन विकल्पों में से हिस्सा (कृपया स्पष्ट करें कि आप अपने जवाब में प्रयोग किया जाता है)।
  • आउटपुट में कोई अग्रणी या अनुगामी स्थान / टैब नहीं हो सकता है, न ही कोई अग्रणी नई-रेखाएँ हो सकती हैं। इसमें एक वैकल्पिक अनुगामी नई-रेखा हो सकती है।

सामान्य नियम:

  • यह , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
    कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें।
  • मानक नियम आपके उत्तर के लिए लागू होते हैं , इसलिए आपको उचित पैरामीटर, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा फोन।
  • डिफ़ॉल्ट लूपोल्स निषिद्ध हैं (विशेषकर 'नकली यादृच्छिक संख्या' )।
  • यदि संभव हो, तो कृपया अपने कोड के लिए एक परीक्षण के साथ एक लिंक जोड़ें।
  • इसके अलावा, यदि आवश्यक हो तो एक स्पष्टीकरण जोड़ें।

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

year,chapter possible outputs:

1700,1       ""; null; undefined; false; 0; etc.
1700,12      ""; null; undefined; false; 0; etc.
1817,10      ""; null; undefined; false; 0; etc.
1818,1       "wretch"; "monster"; "creature"; "demon"; "devil"; "fiend"; "it"
1818,9       "wretch"; "monster"; "creature"; "demon"; "devil"; "fiend"; "it"
1818,10      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1818,11      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1818,18      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1819,1       "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"
1819,18      "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"
2017,24      "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"

जवाबों:


3

पर्ल 5, 156 153 151 बाइट्स

डोमाइट्स के लिए -3 बाइट्स धन्यवाद।

साथ दौड़ो -p

$_=($d=devil,$m=monster,$w=wretch,<"{creature,demon,it,fiend,vile insect,{abhorr,$w}ed {$d,$d,$m},Frankenstein's $m}">)[/818/?6*/,../+rand 7:$_/606-5]

यह आउटपुट वितरण गैर-समान है, जिसे डिफ़ॉल्ट रूप से स्वीकार किया जाता है । विशेष रूप से, अगर तारीख 1818 है और अध्याय the10 है, तो नाम "घृणास्पद शैतान" और "घृणित राक्षस" दो बार उतना ही वजन होता है। यह मुझे उपयोग करने देता हैrand 7 दोनों मामलों के लिए , भले ही सूची विभिन्न आकारों की हो।

1818 से पहले के वर्षों के लिए आउटपुट "मनहूस राक्षस" है। कुछ समानताओं के बावजूद, यह स्ट्रिंग अन्य तीन विकल्पों में से किसी का भी हिस्सा नहीं है , जिससे इसका उपयोग करना ठीक है।

यह 1212-2424 रेंज के बाहर के वर्षों के लिए विफल रहता है, लेकिन सौभाग्य से वर्ष 1500-2018 रेंज में होने की गारंटी है।

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


मुझे नहीं पता था कि ब्रेस विस्तार पर्ल में एक चीज थी ... उस दृष्टिकोण का उपयोग करते हुए, ज्ञात ज्ञात चुनौती के लिए एक महान समाधान है ! इसे ऑनलाइन आज़माएं!
डोम हेस्टिंग्स

@DomHastings ऊह मुझे नहीं पता था कि आप इस तरह रिक्त स्थान उद्धृत कर सकते हैं। कि यहाँ -3 बाइट्स है!
ग्रिममी

खुशी है कि मैं मदद करने में सक्षम था! मुझे निश्चित रूप से यह कोशिश करना होगा और इसे याद रखना होगा, मुझे लगता है कि यह इसलिए <...>है क्योंकि ग्लब्स मानता है?
डोम हेस्टिंग्स

1
<> या तो रीडलाइन या ग्लोब पर निर्भर करता है ... सामान (क्लासिक पर्ल: व्याकरण अस्पष्ट है, लेकिन पार्सर DWYM की कोशिश करता है)। जब यह एक गोला होता है, तो यह गोले के विस्तार सहित शैल गोले को बारीकी से नापता है, जो कि गोले में एक सामान्य विशेषता है।
ग्रिम्मी

क्या आप संभवतः अपने उत्तर में एक TIO- लिंक जोड़ सकते हैं। :) यह वर्तमान में सबसे छोटा जवाब है, लेकिन मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि सब कुछ काम करने से पहले मैं इसे सबसे छोटा मान लूं।
केविन क्रूज़सेन

9

पायथन 2 , 227 220 214 बाइट्स

lambda y,c:[[choice([["wretch",m,"creature","demon",d,F,"it"],["vile insect",a+m,F,"wretched "+d,a+d]][c>9]),"Frankenstein's "+m][y>1818],0][y<1818]
from random import*
m,d,F,a='monster','devil','fiend',"abhorred "

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


1
आप 'abhorred 'सूची में नीचे के रूप में अच्छी तरह से दो बार इस्तेमाल किया गया है के माध्यम से सूची में डालकर 6 और बाइट्स बचा सकता है । ( 'wretch'यह भी संभव है, लेकिन बाइट-काउंट वही रहता है।)
केविन क्रूज़सेन

6

पर्ल 5 , 172 बाइट्स

171 बाइट्स कोड + 1 के लिए -p

@a=<><10?($}=wretch,$M=monster,creature,demon,$D=devil,fiend,it):("vile insect",($A="abhorred ").$M,fiend,"$}ed $D",$A.$D);$_=($a[rand@a],"frankenstein's $M",0)[$_<=>1818]

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

व्याख्या

सुंदर मानक, केवल थोड़ा unsual बात 'अंतरिक्ष यान ऑपरेटर' (उपयोग कर रहा है <=>के साथ) 1818वापसी के लिए -1, 0या 1, यदि इनपुट $_के बराबर, या एक से अधिक, की तुलना में कम है 1818पिछले, पहले, या दूसरे स्रोत डेटा के सूचकांक वापस जाने के लिए । इसके अलावा, मुझे मछली ऑपरेटर पसंद है !


मैं सवाल का उपयोग नहीं करने के लिए जा रहा था $F=fiend, लेकिन परीक्षण के बाद यह ऐसा करने के लिए एक ही लंबाई जा रहा है।
कामिल दकरी

@KamilDrakari हाँ, सिगनल की वजह से छह या उससे अधिक की लंबाई की जरूरत है $:(
डोम हेस्टिंग्स

$}क्या एक चर नाम ...
टाइटस

@ टिट्स यप! लगभग कुछ भी काम करता है, हालांकि कई का अतिरिक्त विशेष अर्थ है। मैंने केवल इसका उपयोग वहां किया था जैसे कि मैंने उपयोग किया था, $Wमुझे ${W}इसका उपयोग करने की आवश्यकता होगी क्योंकि यह एक और पत्र के बगल में है।
डोम हेस्टिंग्स

1
मैंने उस पर भरोसा किया। गच्चा कोई नहीं कम :)
टाइटस

4

सी # (विजुअल सी # कंपाइलर) , 225 209 बाइट्स

y=>c=>y<1818?"":y>1818?"frankenstein's monster":"wretch,monster,creature,demon,devil,it,fiend,vile insect,abhorred monster,wretched devil,abhorred devil".Split(',')[new System.Random().Next(c>9?6:0,c>9?11:7)];

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

-16 केविन क्रूज़सेन को धन्यवाद

विशेष रूप से संक्षिप्त नहीं है, लेकिन मैं उम्मीद करूंगा कि C # जिस तरह से पायथन के उत्तर को दोहराता है, उसे दोहराने के लिए किसी भी दोहराया स्ट्रिंग को घोषित करने और उपयोग करने के लिए अधिक स्थान ले सकता है। शामिल परीक्षण धावक एक हैThread.Sleep(1) टेस्ट मामलों की गणना के अंदर है क्योंकि डिफ़ॉल्ट सीडिंग हैRandom() वर्तमान समय का उपयोग करने के और वास्तविक फ़ंक्शन बिना किसी देरी के एक ही बीज के साथ समाप्त होने के लिए पर्याप्त तेजी से चलता है।

कवक को कॉल करी सिंटेक्स का उपयोग करते हैं, f(year)(chapter)(या जो भी फ़ंक्शन नाम f के बजाय संग्रहीत है)


2
मुझे लगता है कि आपने एक ही तरकीब लागू की थी, जब मैंने चुनौती दी थी, जब मैंने चुनौती को पोस्ट किया था, fiendएक ही स्ट्रिंग-सरणी के बीच में डाल दिया , क्योंकि यह दोनों सूचियों में मौजूद है। (-16 बाइट्स) के new[]{"wretch","monster","creature","demon","devil","it","fiend","vile insect","abhorred monster","wretched devil","abhorred devil"}साथ बदलकर आप कुछ बाइट्स बचा सकते हैं"wretch,monster,creature,demon,devil,it,fiend,vile insect,abhorred monster,wretched devil,abhorred devil".Split(',')
केविन क्रूज़सेन

@KevinCruijssen अच्छा चाल, यह तुरंत लाभकारी लेकिन बदलते नहीं लग रहे हैं से सीमांकक है ","करने के लिए सिर्फ ,लंबे समय तक के लिए का निर्माण करता है .Split(',')की तुलना में new[]{}एक से अधिक कुछ आइटमों के साथ।
कामिल दकरी

3

बैश, 229 , 206 , 197 , 179 बाइट्स

m=monster
a=("Frankenstein's $m" wretch $m creature demon devil it fiend vile\ insect {abhorr,wretch}ed\ {devil,$m})
echo "${a[$1>1818?0:$1<1818?13:RANDOM%($2>9?5:7)+($2>9?7:1)]}"

ब्रेस / चर विस्तार के बारे में स्पष्टीकरण

m=monster
{abhorr,wretch}ed\ {devil,$m}

पहले इसका विस्तार किया गया है

abhorred\ {$m,devil} wretched\ {devil,$m}
abhorred\ $m abhorred\ devil wretched\ devil wretched\ $m

तब चर m का विस्तार किया जाता है

abhorred\ monster abhorred\ devil wretched\ devil wretched\ monster

हालाँकि, निम्न कार्य नहीं करता है क्योंकि $wपहले साथ दिया जाएगा edऔर wedइसे परिभाषित नहीं किया जाएगा और इसे रिक्त स्ट्रिंग में विस्तारित किया जाएगा।

m=monster
w=wretch
{abhorr,$w}ed\ {devil,$m}

यह स्पष्ट ब्रेसिज़ के चारों ओर w जोड़कर किया जा सकता है, लेकिन लंबा होगा

m=monster
w=wretch
{abhorr,${w}}ed\ {devil,$m}

TIO


आप wretchऔर monster( 225 बाइट्स ) चर बनाकर 4 बाइट्स बचा सकते हैं ।
केविन क्रूज़सेन

ब्रेस विस्तार के कारण इतना सरल नहीं है जो परिवर्तनशील विस्तार से पहले होता है
नाहुएल फोइउलुल

मैंने (लगभग) कभी भी बैश में प्रोग्राम नहीं किया, तो क्या आप स्पष्ट कर सकते हैं कि आपका क्या मतलब है? यह TIO में काम करने लगता है , लेकिन शायद प्रोग्रामिंग भाषा के व्यवहार के तरीके के कारण मुझे कुछ याद आ रहा है।
केविन क्रूजसेन

1
@ केविनक्रूजसेन थैंक यू मैंने कुछ सीखा जब ब्रेसिज़ अंतिम तत्व के विस्तार के काम होते हैं
नाहुले फौइउल

1
@DomHastings, हाँ, निश्चित
नहुएल फौलीउल

2

एपीएल (डायलॉग यूनिकोड) , 189 बाइट्स

m'monster'
a'abhorred ',⊢
f'fiend'
d'devil'
{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}

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

परीक्षण करने के लिए, परीक्षण मामले को अंतिम कर्ली ब्रैकेट में संलग्न करें, जैसे:

{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}1818 10

प्रमुख व्हाट्सएप मुद्दे के साथ मदद करने के लिए @ngn के लिए बहुत धन्यवाद।

यह काम किस प्रकार करता है:

यह ध्यान देने योग्य है कि एपीएल वर्णों के सरणियों ( वैक्टर ) के रूप में तारों की व्याख्या करता है , इसलिए 'wretch' 'creature'अन्य भाषाओं में इसकी व्याख्या की जाएगी[[w,r,e,t,c,h],[c,r,e,a,t,u,r,e]]

ये सहायक कार्य हैं:

m'monster'      #These are pretty self explanatory, variables m, f and d are being set to 'monster', 'fiend' and 'devil respectively.
f'fiend'
d'devil'
a'abhorred ',⊢  # a is being set to 'abhorred ' concatenated with the argument to it's right.

यह मुख्य कार्य है, जिसे बेहतर समझ के लिए 3 भागों में तोड़ा जाएगा:

{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}

भाग 1:

{⊃⍵=1818:{Part2}⍵⋄{Part3}⍵} # First conditional
        :                   # If
                           # the first element
                           # of the argument ⍵
   =1818                    # Equals the literal 1818
         {Part2}⍵           # Executes part 2 with argument ⍵
                           # Else
                  {Part3}⍵  # Executes part 3 with argument ⍵

भाग 2:

{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it' # Second conditional
(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵                
       :                                         # If
                                                # the first element
                                                # of the inverse
                                                # of the argument ⍵
    <10                                          # is less than 10
                                                # pick the nth
       (?7)                                      # random element between [1,7]
            'wretch'm'creature' 'demon'd f'it'   # from this string array
                                                # Else
                                                # pick the nth
(?5)                                             # random element between [1,5]
     'vile insect'(a m)f('wretched ',⊢d)(a d)    # from this string array
                                             }⍵  # using argument ⍵

भाग 3:

{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵ # Third conditional
        :                           # If
                                   # the first element
                                   # of the argument ⍵
   >1818                            # is greater than 1818
         'frankenstein''s ',⊢m      # print the string "frankenstein's" concatenated with m (which prints monster)
                                   # else
                               ''   # print an empty string
                                 }⍵ # with argument ⍵

2

जावा (ओपनजेडके 8) , 275 269 255 207 203 बाइट्स

y->c->y<1818?0:y>1818?"Frankenstein's monster":"wretch;monster;creature;demon;devil;it;fiend;vile insect;abhorred monster;wretched devil;abhorred devil".split(";")[c+=Math.random()*(c>9?5:7)+(c>9?6:0)-c]

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



और आप fiendमध्य में (जो दोनों सूचियों में मौजूद है) डालकर 4 और बाइट्स बचा सकते हैं : y->c->y<1818?0:y>1818?"Frankenstein's monster":"wretch;monster;creature;demon;devil;it;fiend;vile insect;abhorred monster;wretched devil;abhorred devil".split(";")[(int)(Math.random()*(c<10?7:5))+(c<10?0:6)]( 207 बाइट्स )
केविन क्रूज़सेन

1
203 बाइट्स । इसे प्राप्त करने के IntFunctionबजाय s का उपयोग करें Function<Integer>
ओलिवियर ग्रेगोइरे

2

PHP, 184 176 बाइट्स

<?=strtr([0,1,2,Creature,Demon,It,Fiend,30,31,"2ed 1","Vile Insect","Frankenstein´s 0"][[rand(6*$x=$argv[2]>9,6+4*$x),11][$argv[1]<=>1818]],[Monster,Devil,Wretch,"Abhorred "]);

के साथ चलाएँ -nऔर कमांड लाइन तर्क के रूप में वर्ष और अध्याय दें या इसे ऑनलाइन आज़माएं

सूचकांक और इस प्रकार परिणाम का मूल्यांकन NULLवर्ष <1818 के लिए होता है, जिससे खाली आउटपुट प्राप्त होता है।


क्या करता $argv[1]<=>1818है? मैंने कभी ऐसा नहीं देखा।
YU NO WORK


1

जावास्क्रिप्ट (ईएस 6), 205 बाइट्स

a="abhorred ",d="devil",f="fiend",m="monster"
y=>c=>y<1818?0:y>1818?"frankenstein's "+m:(l=c<10?[f,"wretch",m,"creature","demon",d,f,"it"]:["vile insect",a+m,f,"wretched "+d,a+d])[0|Math.random()*l.length]

0यदि वर्ष 1818 से कम है तो लौटाता है


1

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

M="monster"
A=(y,c)=>y<1818?"":y^1818?"Frankenstein's "+M:[W="wretch",M,"creature","demon",D="devil",F="fiend","it","vile insect",(H="abhorred ")+M,F,W+"ed "+F,H+D][Math.random()*(c>9?5:7)+7*(c>9)|0]

console.log(A(1700,1))
console.log(A(1700,12))
console.log(A(1817,10))
console.log(A(1818,1))
console.log(A(1818,9))
console.log(A(1818,10))
console.log(A(1818,11))
console.log(A(1819,1))
console.log(A(1819,18))
console.log(A(2017,24))


1

सी, 380 BYTES

void ok(int *year, int* chapter){char*below_10[] = {"wretch", "monster", "creature", "demon", "devil", "fiend", "it"}; char*at_10[] = {"vile insect", "abhorred monster", "fiend", "wretched devil", "abhorred devil"}; year < 1818?printf("0"):(year == 1818?(chapter<10 printf("%s",below_10[rand()%8]):printf("%s",at_10[rand()%7])):printf("Frankenstein's Monster"));}

4
नमस्ते, PPCG में आपका स्वागत है! एक कोड-गोल्फ चुनौती में लक्ष्य के रूप में संभव के रूप में कुछ बाइट्स है। इसलिए एकल अक्षरों के रूप में विधि / चर नाम सबसे अच्छे हैं। इसके अलावा, आप सभी अनावश्यक रिक्त स्थान और नई लाइनें हटा सकते हैं, और "Frankenstein's Monster"इसके लिए एक चर बनाने के बजाय सीधे उपयोग कर सकते हैं। इसके अलावा, जहां है yearऔर chapterआने वाले अब से? मैं इसे विधि के मापदंडों के रूप में नहीं देखता हूं। <सभी भाषाओं में गोल्फिंग के लिए टिप्स > और सी में गोल्फिंग के लिए टिप्स उपयोगी हो सकते हैं। यहां रहने का आनंद! :)
केविन क्रूज़सेन

कोई दिक्कत नहीं है। और आप थोड़ा और अधिक गोल्फ कर सकते हैं: void o(int y,int c){char*b[]={"wretch","monster","creature","demon","devil","fiend","it"},*a[]={"vile insect","abhorred monster","fiend","wretched devil","abhorred devil"};printf("%s",y<1818?0:y==1818?c>9?a[rand()%6]:b[rand()%7]:"Frankenstein's Monster");} 256 बाइट्स यहां आज़माएं! (मैं सभी अनावश्यक रिक्त स्थान, नाम विधि / चर / एकल पत्र के लिए पैरामीटर निकाल दिए, एकल, त्रिगुट-अगर में कुछ अनावश्यक कोष्ठक हटा दिया printf; बदल <10करने के लिए >9; आदि) सुनिश्चित नहीं हैं कि क्यों rand()TIO में काम नहीं कर रहा है ..: एस
केविन क्रूज़सेन


1

MBASIC , 288 बाइट्स

1 DIM R$(12):FOR I=1 TO 12:READ R$(I):NEXT:INPUT Y,C:IF Y<1818 THEN 5
2 IF Y>1818 THEN O$="Frankenstein's Monster":GOTO 5
3 IF C>9 THEN O=7
4 O$=R$(O+INT(RND(1)*N+1))
5 PRINT O$:DATA wretch,monster,creature,demon,devil,fiend,it,vile insect,abhorred monster,fiend,wretched devil,abhorred devil

0

05AB1E , 114 110 बाइट्स

0…뢼–±¹.•ʒ¦Ë"ìËM₂G¶тá≠•ì#.•1ÏiT¥Ƶʒ“T¡Äg… 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н••Jtm•17в£‚…'s 'ì³R7£R’¡¬ÿÿ±¹’¸¸)sŽ7X.S>èsT@èΩ

0वर्ष नीचे होने पर आउटपुट1818

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

स्पष्टीकरण:

0                    # Push a 0
…뢼–±¹              # Push dictionary string "creature devil monster"
 .•ʒ¦Ë"ìËM₂G¶тá≠•   "# Push compressed string "demon fiend it wretch "
  ì                  # Prepend it: "demon fiend it wretch creature devil monster"
   #                 # Split by spaces: ["demon","fiend","it","wretch","creature","devil","monster"]
.•1ÏiT¥Ƶʒ“T¡Äg 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н•
                     # Push compressed string "abhorred devilabhorred monsterfiendvile insectwretched devil"
 Jtm               # Push compressed integer 1249548
      17в            # Converted to Base-17 as list: [14,16,5,11,14]
         £           # Split the string into parts of that size: ["abhorred devil","abhorred monster","fiend","vile insect","wretched devil"]
                    # Pair both string-lists together
's                 '# Push string "'s "
   'ì³              '# Push dictionary string "liechtenstein"
      R7£R           # Leave the last 7 characters: "enstein"
          ’¡¬ÿÿ±¹’   # Push dictionary string "frankÿÿmonster", where the "ÿ" are automatically
                     # replaced with the strings at the top of the stack: "frankenstein's monster"
                  ¸¸ # Wrap it twice into a list: [["frankenstein's monster"]]
)                    # Wrap everything on the stack into a list
                     # (We now have: [0,[["demon","fiend","it","wretch","creature","devil","monster"],["abhorred devil","abhorred monster","fiend","vile insect","wretched devil"]],[["frankenstein's monster"]]])
 s                   # Swap to get the first (implicit) input
  Ž7X                # Push compressed integer 1818
     .S              # Compare it with the input (-1 if below; 0 if equal; 1 if above)
       >             # Increase it by 1 (0 if below; 1 if equal; 2 if above)
        è            # Use it to index into the list
         s           # Swap to get the second (implicit) input
          T@         # Check if it's larger than or equal to 10 (results in 0 for falsey; 1 for truthy)
            è        # Use it to index into the inner list
             Ω       # And finally get a random value from that list (which is output implicitly)

मेरा यह 05AB1E टिप देखें (वर्गों शब्दकोश का उपयोग कैसे करें? ; संपीड़ित तार शब्दकोश का हिस्सा नहीं कैसे? ; कितना बड़ा पूर्णांक संपीड़ित करने के लिए? , और कैसे संपीड़ित पूर्णांक सूचियों के लिए? ) क्यों समझने के लिए:

  • …뢼–±¹है "creature devil monster";
  • .•ʒ¦Ë"ìËM₂G¶тá≠•है "demon fiend it wretch ";
  • .•1ÏiT¥Ƶʒ“T¡Äg… 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н•है "abhorred devilabhorred monsterfiendvile insectwretched devil";
  • •Jtm•है 1249548और •Jtm•17вहै [14,16,5,11,14];
  • 'ì³है "liechtenstein ";
  • ’¡¬ÿÿ±¹’है "frankÿÿmonster";
  • Ž7Xहै 1818

-1

जावास्क्रिप्ट, 194 बी

e=Math.random,f=Math.floor;x=(a,b,c=`insect,monster,wretch,creature,demon,devil,fiend,it`.split`,`,d=[`vile `,`abhorred `])=>a<1818||a-1818?`Frankenstein's `+c[1]:(b<10||c[f(e()*2)])+c[f(e()*8)]

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