अन्नो खेल के लिए सभी संभव शीर्षकों की सूची बनाएं


37

में ईसा वीडियो गेम श्रृंखला जल्दी 2019 उनके खिताब हमेशा एक विशिष्ट पैटर्न में एक वर्ष की सुविधा के लिए की घोषणा की 7 वीं से एक के साथ 6 मैचों देखते हैं:

Anno 1602, Anno 1503, Anno 1701, Anno 1404, Anno 2070, Anno 2205, Anno 1800

  • डिजिटल योग हमेशा 9 होता है।
  • वर्ष चार अंक लंबे होते हैं।
  • इनमें कम से कम एक शून्य होता है।

इन बाधाओं के भीतर 109 संभावित शीर्षक मौजूद हैं:

[1008,1017,1026,1035,1044,1053,1062,1071,1080,1107,1170,1206,1260,1305,1350,1404,1440,1503,1530,1602,1620,1701,1710,1800,2007,2016,2025,2034,2043,2052,2061,2070,2106,2160,2205,2250,2304,2340,2403,2430,2502,2520,2601,2610,2700,3006,3015,3024,3033,3042,3051,3060,3105,3150,3204,3240,3303,3330,3402,3420,3501,3510,3600,4005,4014,4023,4032,4041,4050,4104,4140,4203,4230,4302,4320,4401,4410,4500,5004,5013,5022,5031,5040,5103,5130,5202,5220,5301,5310,5400,6003,6012,6021,6030,6102,6120,6201,6210,6300,7002,7011,7020,7101,7110,7200,8001,8010,8100,9000]

आपका उद्देश्य उन सभी को किसी भी उचित रूप में सबसे कम संख्या में बाइट्स में सूचीबद्ध करना है।


आउटपुट स्वरूप कितना लचीला है? क्या यह स्वीकार्य है?
लुइस मेंडो

1
@LuisMendo हाँ, यह मेरे साथ ठीक है।
लकोनी

क्या अंकों की सूची की अनुमति है?
आउटगॉल्फ

1
@aslum मुझे लगता है कि आप बहुत सारे रिक्त स्थान का मतलब है, न कि केवल एक ही सही? टिप्पणी मार्कडाउन उस के अच्छे प्रतिनिधित्व के लिए अनुमति नहीं देता है। और मुझे लगता है कि अनुमति दी जाएगी, यह देखते हुए कि ऊपर लुइस के प्रारूप की अनुमति है। ;-)
आउटगॉल्फ

1
@EriktheOutgolfer मैं अंकों की सूची को नहीं कहूंगा क्योंकि वे वास्तव में अब वर्षों की तरह नहीं दिखते हैं।
लैकोनी

जवाबों:


20

आर , 59 51 बाइट्स

201 की सूची के नाम के रूप में मान्य संख्याओं को आउटपुट करता है । 201 क्यों? क्योंकि ASCII 0 48 है, और 4 * 48 + 9 है ... हाँ। अलियासिंग से 6 बाइट्स सहेजा ^करने के लिए Mapका उपयोग करके एक और 2 और 1:9e3सीमा के रूप में।

"^"=Map;x=sum^utf8ToInt^grep(0,1:9e3,,,T);x[x==201]

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

व्याख्या

# Create list of sums of ASCII char values of numbers,
# with the original numbers as the names of the list
x <- Map(sum,
  # Create a list from the strings where each element is the string split 
  # into ASCII char values
  Map(utf8ToInt,
      # Find all numbers between 1 and 9e3 that contain a zero
      # Return the matched values as a vector of strings (6th T arg)
      grep(pattern=0,x=1:9000,value=TRUE)
  )
)
# Pick out elements with value 201 (i.e. 4-digits that sum to 9)
# This implicitly only picks out elements with 4 digits, since 3-digit 
# sums to 9 won't have this ASCII sum, letting us use the 1:9e3 range
x[x==201] 

3
आह, grepमुझे यह क्यों याद नहीं है कि यह character...
ग्यूसेप


9

पायथन 2 , 67 66 64 बाइट्स

print[y for y in range(9001)if('0'in`y`)*sum(map(ord,`y`))==201]

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


बचाया:

  • -1 बाइट, लुइस फेलिप डी जीसस मुनोज को धन्यवाद
  • -2 बाइट्स, केविन क्रूज़सेन की बदौलत

ord sum == 201अन्य उत्तरों से चाल का उपयोग करके 64 बाइट्स
केविन क्रूज़सेन

9

जेली , 11 बाइट्स

9ȷṢ€æ.ẹ9ṫ19

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

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

9ȷṢ€æ.ẹ9ṫ19  Main link. No arguments.

9ȷ           Set the left argument and the return value to 9000.
  Ṣ€         Sort the digits of each integer in [1, ..., 9000].
    æ.       Perform the dot product of each digit list and the left argument,
             which gets promoted from 9000 to [9000].
             Overflowing digits get summed without multiplying, so we essentially
             map the digit list [a, b, c, d] to (9000a + b + c + d).
      ẹ9     Find all 1-based indices of 9.
             Note that 9000a + b + c + d == 9 iff a == 0 and b + c + d == 9.
        ṫ19  Tail 19; discard the first 18 indices.

7

पॉवरशेल , 50 49 बाइट्स

999..1e4-match0|?{([char[]]"$_"-join'+'|iex)-eq9}

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

से एक सीमा का निर्माण 999करने के लिए 10000है, तो इनलाइन का उपयोग करता है -matchएक फिल्टर के रूप कि regex मैच के खिलाफ इन प्रविष्टियों को बाहर निकलने के लिए 0। यह हमें 1000, 1001, 1002, etc.वी के साथ छोड़ देता है, फिर उस Where-Objectखंड में जहां हम वर्तमान संख्या को एक स्ट्रिंग के "$_"रूप में ले charजाते हैं, इसे एक- ऐरे के रूप में डालते हैं, -joinउन वर्णों को एक साथ +और Invoke- दबाव Ex(eval के समान) के साथ अपने अंकों के योग के साथ आने के लिए। हम जाँचते हैं कि क्या यह -equal को है 9, और यदि यह पाइपलाइन पर पारित हो गया है। कार्यक्रम पूरा होने पर, उन नंबरों को पाइपलाइन से उठाया जाता है और अंतर्निहित रूप से आउटपुट दिया जाता है।


5

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

सहेजे गए 2 बाइट @KevinCruijssen को धन्यवाद

एक अंतरिक्ष-पृथक स्ट्रिंग लौटाता है।

f=(n=9e3)=>n>999?f(n-9)+(eval([...n+''].join`+`)&/0/.test(n)?n+' ':''):''

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

कैसे?

हम वृद्धि के साथ रेंज पर पुनरावृति करते हैं, उन संख्याओं को अनदेखा करते हैं जिनमें नहीं है ।[1008..9000]90

ये सभी संख्याएँ गुणक हैं , इसलिए उनके अंकों का योग गुणक होने की गारंटी है ।99

क्योंकि वैध संख्या में कम से कम एक , उनके पास दो से अधिक नहीं है , जिसका अर्थ है कि शेष अंकों का योग सबसे अधिक । इसलिए, यह जांचने के लिए पर्याप्त है कि अंकों का योग विषम है या नहीं।0918

इसलिए परीक्षण:

(eval([...n + ''].join`+`) & /0/.test(n)

आप एक बाइट बदलते बचा सकते हैं 1008करने के लिए 999, क्योंकि यह एक 0 वैसे भी शामिल नहीं है, और 999+9 = 1008
केविन क्रूज़सेन

या इसे बदलने के लिए भी 2 बाइट्स f=(n=9e3)=>n<1e3?'':(eval([...n+''].join`+`)<10&/0/.test(n)?[n,,]:'')+f(n-9)(हालांकि एक अनुगामी अल्पविराम होता है, ताकि f=(n=9e3)=>n<1e3?'':(eval([...n+''].join`+`)<10&/0/.test(n)?n+' ':'')+f(n-9)अनुगामी अंतरिक्ष सहित अंतरिक्ष सीमांकक के साथ सुंदर लग सकता है)
केविन क्रूज़सेन

@ केविनक्रूजसेन धन्यवाद! मैं वास्तव में थोड़ी देर के लिए इसे अपडेट करने की कोशिश कर रहा हूं, लेकिन मुझे 500B / s इंटरनेट बैंडविड्थ पसंद है जहां मैं आज रात हूं। : /
अरनुलद

मुझे पता है कि .. घर पर हमारा इंटरनेट किसी कारण से बकवास है .. 10 एमबी से ऊपर कुछ भी डाउनलोड नहीं किया जा सकता है, और कभी-कभी पूरी तरह से लोड होने से पहले 10+ छवियों के साथ वीडियो या पृष्ठों को ताज़ा करना पड़ता है .. वास्तव में कष्टप्रद जब मैं सोमवार / मंगलवार को घर से काम कर रहा हूँ ..>।>> कल कोई इसे ठीक करने के लिए आता है (और मैं इसे तब तक नहीं छोड़ रहा हूं जब तक कि यह xD तय नहीं हो जाता)
केविन क्रूज़सेन

5

जावास्क्रिप्ट (Node.js) , 89 बाइट्स

[...Array(9e3)].map(_=>i++,i=1e3).filter(a=>(s=[...a+""]).sort()[0]<1&eval(s.join`+`)==9)

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

  • -4 बाइट्स @ETHproductions के लिए धन्यवाद

जावास्क्रिप्ट (Node.js), 129 127 126 124 115 114 114 111 110 105 97 93 92 बाइट्स

[...Array(9e3)].map(f=(_,i)=>eval(s=[...(i+=1e3)+""].sort().join`+`)-9|s[0]?0:i).filter(f)

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

व्याख्या

[...Array(9e3)].map(f=(_,i)=>eval(s=[...(i+=1e3)+""].sort().join`+`)-9|s[0]?0:i).filter(f)
[...Array(9e3)].map(f=(_,i)=>                                                  )           // Create a 9000-length array and loop over it; store the loop body
                                    [...(i+=1e3)+""]                                       // Add 1000 to the index and split it into an array of characters (17 -> ["1", "0", "1", "7"])
                                                    .sort()                                // Sort the array of characters in ascending order by their code points ("0" will always be first) (["1", "0", "1", "7"] -> ["0", "1", "1", "7"])
                                  s=                       .join`+`                        // Join them together with "+" as the separator (["0", "1", "1", "7"] -> "0+0+2+9"); store the result
                             eval(                                 )-9                     // Evaluate and test if it's different than 9
                                                                       s[0]                // Take the first character of the string and implicitly test if it's different than "0"
                                                                      |    ?0              // If either of those tests succeeded, then the number doesn't meet challenge criteria - return a falsey value
                                                                             :i            // Otherwise, return the index
                                                                                .filter(f) // Filter out falsey values by reusing the loop body

पहली बार जावास्क्रिप्ट में कोड गोल्फ कर रहा है। मुझे नहीं लगता कि मुझे यह कहने की आवश्यकता है, लेकिन अगर मैं कुछ गलत कर रहा हूं, तो कृपया नीचे टिप्पणी में मुझे सूचित करें।

  • -3 बाइट्स @Luis felipe De jesus Munoz को धन्यवाद

  • -6 बाइट्स के लिए धन्यवाद @ केविन क्रूज़सेन


1
[...Array(9e3)]इसके बजाय Array(9e3).fill()2 बाइट्स बचाता है
लुइस फेलिप डी जीसस मुनोज

1
.map(a=>+a)इसके बजाय .map(Number)एक अन्य बाइट बचाता है
लुइस फेलिप डी जीसस मुनोज

1
आप (_, i)एक बाइट को बचाने के लिए स्थान को हटा सकते हैं , और एक अतिरिक्त 4 बाइट्स को बचाने के लिए s[0]+s[1]+s[2]+s[3]हो सकता eval(s.join`+`)है।
केविन क्रूज़सेन

1
इसके अलावा, मुझे पूरा यकीन है कि आपके उत्तर में ||हो सकता |है।
केविन क्रूज़सेन

1
यदि आप .map()केवल रेंज जेनरेट करने के लिए उपयोग करते हैं, और फ़िल्टरिंग को अलग रखते हैं, तो आप 8 बाइट्स बचा सकते हैं: इसे ऑनलाइन आज़माएं!
ETHproductions

5

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

n=999
exec"n+=9\nif'0'in`n`>int(`n`,11)%10>8:print n\n"*n

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

डेनिस के लिए 2 बाइट्स धन्यवाद

एक execलूप का उपयोग n9 के चरणों में 1008, 1017, ..., 9981, 9990 के रूप में करता है, जो शर्त को पूरा करते हैं।

केवल 9 के गुणक में 9 अंक हो सकते हैं, लेकिन इस श्रेणी के 9 के गुणकों में 18 और 27 के अंक भी हो सकते हैं। हम शर्त के साथ इन पर शासन करते हैं int(`n`,11)%10>8nआधार 11 में व्याख्या करना , इसकी अंक राशि संख्या मोडुलो 10 के बराबर है, ठीक उसी प्रकार जैसे आधार 10 में एक संख्या अपने अंक योग के बराबर होती है। 9. (9, 18, 27) के अंकों का योग (9, 8, 7) के अनुरूप होता है। modulo 10, इसलिए उन >8कामों को लेना जो निन को फ़िल्टर करने का काम करते हैं।

शून्य वाली संख्या को स्ट्रिंग सदस्यता के साथ जांचा जाता है। '0'in`n`। यह स्थिति जंजीर असमानता के साथ दूसरे के साथ जुड़ जाती है, जिसका उपयोग करके पायथन 2 संख्याओं से अधिक तार का व्यवहार करता है।


मुझे यह पसंद है कि पायथन कितना भारी है, अक्सर लगता है कि बहुत लंबे समय तक
ऑटोगेन्जेनेटेड एक्सेलेबल्स हैं

4

sed और grep (और seq), 72 64 63 बाइट्स

seq 9e3|sed s/\\B/+/g|bc|grep -wn 9|sed s/:9//|grep 0|grep ....

इनमें से कुछ चार अंक लंबे नहीं हैं (लेकिन मुझे यकीन नहीं है कि अंतिम क्या grepहै, इसलिए शायद मैं इसे गलत चला रहा हूं?)
1

@ श्रावक: अंतिम grep यह सुनिश्चित करता है कि संख्या 4 अंकों की लंबी है
Thor

@ थोर आह सही। किसी कारण के लिए मैंने एक दीर्घवृत्त के रूप में पार्स किया।
स्पार्कहॉक

4

हास्केल , 55 बाइट्स

[i|i<-show<$>[1..5^6],201==sum(fromEnum<$>i),elem '0'i]

@Laikoni के लिए धन्यवाद, टिप्पणियों को देखें।

पठनीय:

import Data.Char (digitToInt)

[i | i <- show <$> [1000..9999]
   , sum (digitToInt <$> i) == 9
   , '0' `elem` i
   ]

2
विशेष रूप से PPCG और हास्केल गोल्फ में आपका स्वागत है! आप (-48+)के 201बजाय के खिलाफ राशि छोड़ने और तुलना करके कुछ बाइट्स बचा सकता है 9। संयोग से यह भी आपको सीमा के 1बजाय उपयोग करने की अनुमति देता है 1000
लकोनी

इसके अलावा मेटा पर इस सहमति के बिना आपके पिछले संस्करण main=printठीक थे ।
लकोनी

99995^6इसके बजाय हो सकता है ।
लकोनी

1
हा, शेव करने के लिए हमेशा एक और बाइट होती है! धन्यवाद :-)
mb21

3

आर , 82 बाइट्स

write((x=t(expand.grid(1:9,0:9,0:9,0:9)))[,colSums(x)==9&!apply(x,2,all)],1,4,,"")

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

xसभी संभावित 4-अंकीय संख्याओं का एक मैट्रिक्स उत्पन्न करता है , जो प्रमुख शून्य को छोड़कर, स्तंभों के नीचे जाता है। फिर 9 के कॉलम (डिजिटल) के लिए फ़िल्टर और शून्य से युक्त, अर्थात, allनॉनज़रो नहीं हैं। writeइसलिए हम कॉलम नीचे प्रिंट, writeके लिए stdoutकी चौड़ाई के साथ 4और के एक विभाजक ""

J.Doe द्वारा बहिष्कृत


अच्छा जवाब! मैं एक अलग मार्ग के साथ आया ...
जे। डी। ओ।

3

जाप , 20 18 बाइट्स।

-2 बाइट्स @ शुग्गी और @ETHproductions की बदौलत

A³òL² f_=ì)x ¥9«Z×

A³òL² f_=ì)x ¥9«Z×  Full program
A³òL²               Range [1000, 10000]
      f_            Filter by : 
        =ì)         Convert to array 
           x ¥9     Sum equal to 9?
               «    And 
                Z×  Product not 0

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


यह वास्तव में 28 बाइट्स है । इसके बजाय शाब्दिक पूर्णांक का उपयोग करना 22 बाइट्स है, लेकिन A³ò9000 f_ìx ¥9©ZsøTआपको 20 तक वापस ले जाता है।
झबरा

1
आप 1 बाइट बचा सकते ìहैं sऔर इसके बजाय ¬, जिसका उपयोग फ़िल्टर में किया जाना है f_=ì)x ¥9...:। तब आप चेक करके एक और बचा सकते हैं यदि Z का उत्पाद इसके साथ शून्य है «Z×: इसे ऑनलाइन आज़माएं!
ETHproductions

3

जावा 8, 128 117 115 बाइट्स

v->{int i=109,r[]=new int[i],n=i;for(;i>0;n++)if((n+"").chars().sum()==201&(n+"").contains("0"))r[--i]=n;return r;}

-11 बाइट्स @nwellnhof को धन्यवाद ।

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

स्पष्टीकरण:

v->{                              // Method with empty unused parameter & int-array return
  int i=109,                      //  Index-integer, starting at 109
      r[]=new int[i],             //  Result-array of size 109
      n=i;                        //  Number integer, starting at 109
   for(;i>0;                      //  Loop as long as `i` is not 0 yet:
       n++)                       //    After every iteration, increase `n` by 1
     if((n+"").chars().sum()==201 //   If the sum of the unicode values of `n` is 201,
                                  //   this means there are four digits, with digit-sum = 9
        &(n+"").contains("0"))    //   and `n` contains a 0:
       r[--i                      //    Decrease `i` by 1 first
            ]=n;                  //    And put `n` in the array at index `i`
  return r;}                      //  Return the array as result

1
किस बारे में chars().sum()==201?
nwellnhof

@nwellnhof आह, बिल्कुल। धन्यवाद!
केविन क्रूज़सेन


3

05AB1E , 15 13 12 10 बाइट्स

₄4°ŸεW°ö9Q

-2 बाइट्स धन्यवाद @Emigna
-3 बाइट्स @Grimy के लिए धन्यवाद

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

स्पष्टीकरण:

4°Ÿ        # Create a list in the range [1000,10000]
    ʒ       # Filter this list by:
     W      #  Get the smallest digit in the number (without popping the number itself)
      °     #  Take 10 to the power this digit
       ö    #  Convert the number from this base to an integer (in base-10)
        9Q  #  Check if it's equal to 9
  • d=0110d°ö
  • d=11010d°ö
  • d=210010d°ö023452030405 )।
  • d=3100010d°ö0034563004005006
  • d=[4,9]d=2d=3d10

>0[1000,10000]°ö[1111,9000000009000000009000000009]999Qd=0°ö9


1
₄4°Ÿʒ0å}ʒSO9Q। स्प्लिटिंग फिल्टर आमतौर पर कम होते हैं
एमिग्ना

@ मम्मे आह, मैं सीमा के लिए एक छोटे रास्ते की तलाश में था, लेकिन पूरी तरह से भूल गया । धन्यवाद। और आप वास्तव में सही हैं कि कई ढीले फिल्टर (अंत में) छोटे हैं। इसे मेरे एक टिप जवाब में भी जोड़ देंगे। दोनों बाइट्स के लिए धन्यवाद!
केविन क्रूज़सेन

1
और मेरे अन्य 13-बटर (द योग राशि == 201 चाल से प्रेरित) है 4°Lʒ0å}ʒÇOт·-। इसे छोड़कर, शायद कोई इसे आगे बढ़ा सकता है
श्री एक्सकोडर

1
₄4°ŸʒD0åôO9Q। एक फिल्टर का उपयोग आमतौर पर कम होता है।
ग्रिम्मी

1
नेवरमाइंड, यहां 10:₄4°ŸʒW°ö9Q
ग्रैमी

2

पिप , 18 बाइट्स

{0Na&$+a=9}FIm,t*m

-pपठनीय आउटपुट प्राप्त करने के लिए एक ouput- प्रारूप ध्वज का उपयोग करें । इसे ऑनलाइन आज़माएं!

{0Na&$+a=9}FIm,t*m
             m,t*m  Range from 1000 to 10*1000
{         }FI       Filter on this function:
 0Na                 There is at least one 0 in the argument
    &                and
     $+a             The sum of the argument
        =9           equals 9

2

वोल्फ्राम लैंग्वेज (गणितज्ञ) , 56 55 बाइट्स

Select[9!!~Range~9999,Tr@#==Times@@#+9&@*IntegerDigits]

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

हम 9 से रेंज का परीक्षण करते हैं !! = 945 से 9999, क्योंकि 945 और 999 के बीच कोई परिणाम नहीं है। शायद 9000 और 10007 के बीच की संख्या लिखने का एक छोटा तरीका है, साथ ही।

Tr@#==Times@@#+9&{a,b,c,d}परीक्षणों पर लागू किया जाता है a+b+c+d == a*b*c*d+9, अगर , जो अन्नो स्थिति के समतुल्य है।


रेट्रोस्पेक्ट में, 9 !! 999 या कुछ से कम नहीं है, लेकिन यह 1000 धड़कता है।
मिशा लावरोव

9 क्या है !! ? अनुमान लगाने में यह गुटों से संबंधित नहीं है।
रॉबर्ट फ्रेजर

@ रोबर्टफ्रेसर डबल फैक्टरियल 9*7*5*3*1:।
मिशा लावरोव

2

रूबी , 46 42 41 बाइट्स

?9.upto(?9*4){|x|x.sum==201&&x[?0]&&p(x)}

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

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

  • '9' से लेकर '9999' तक के स्ट्रिंग्स पर Iterate
  • जाँच करें कि ASCII मानों का योग 201 है
  • जांचें कि क्या स्ट्रिंग में एक शून्य है (रेगेक्स के बिना, एक रेगेक्स 1 बाइट लंबा होगा)

(धन्यवाद ब्यॉकोनी -2 बाइट्स के लिए)


1
9*3बस हो सकता है 9, क्योंकि 201 के खिलाफ जांच करने के लिए पहले से ही 4 अंकों की संख्या की आवश्यकता होती है।
लकोनी

2

ऑक्टेव , 49 बाइट्स

6 बाइट्स को अधिक सुविधाजनक आउटपुट स्वरूप का उपयोग करके बचाया गया जैसा कि जेडोडे ने सुझाव दिया था ।

@Laikoni को सुधार के लिए धन्यवाद

y=dec2base(x=1e3:9999,10)'-48;x(sum(y)==9>all(y))

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


मुझे ओक्टेव के बारे में कुछ भी नहीं पता है, लेकिन ऐसा लगता है कि आप इसे छोड़ सकते हैं disp...
जे।

@ J.Doe ओपी ने पुष्टि की है कि आउटपुट प्रारूप स्वीकार्य है। सलाह के लिये धन्यवाद!
लुइस मेंडो

2

डार्ट ,  103 100  96 बाइट्स

f()=>List.generate(9001,(i)=>'$i').where((i)=>i.contains('0')&&i.runes.fold(0,(p,e)=>p+e)==201);

  • -3 बाइट्स को स्ट्रिंग में मान सेट करके रूपांतरण, एक बार रूपांतरण और दो बार नहीं
  • -4 बाइट्स कोड यूनीट के बजाए रनों का उपयोग करके
  • सुंदर आत्म-व्याख्यात्मक। मान के रूप में सेल के सूचकांक के साथ 9001 (0-9000) कोशिकाओं की एक सूची उत्पन्न करता है, 0 वाले वाले को फ़िल्टर करता है, फिर 201 के ASCII राशि वाले (यदि सभी ASCII वर्ण 9 के योग हैं)। इन शर्तों में निहित है कि 2 ASCII संख्या (और 0) का उपयोग करते हुए, वर्ष 4 अंक लंबा है, आप 201 तक नहीं पहुंच सकते।

    Dartpad पर यह कोशिश करो!


    PPCG में आपका स्वागत है। :)
    लैकोनी

    1
    धन्यवाद ! कुछ समय तक
    दुबके रहे


    2

    के (ngn / k) , 22 बाइट्स

    55_&(|/~a)&9=+/a:!4#10
    

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


    अच्छा! 55_&9=+/y*|/'~y:!4#1021 के लिए?
    स्ट्रीटस्टर

    1
    धन्यवाद @streetster :) 'में |/'दिखता है गलत। परिणाम में १११६, ११२५, ११३४, इत्यादि शामिल हैं जो कि नहीं होने चाहिए
    ngn १18'१


    2

    PHP, 69, 87 बाइट्स 74 बाइट्स

    for($i=999;$i<9001;$i++){echo((array_sum(str_split($i))==9&strpos($i,"0")!=0)?$i:" ");} for($i=999;$i++<1e4;)echo!strpos($i,48)|array_sum(str_split($i))-9?" ":$i;

    ध्यान दें कि यह प्रत्येक "विफल" संख्या के लिए एक स्थान रखता है, जिससे किसी प्रकार की फंकी रिक्ति होती है। इसे अल्पविराम पृथक्करण में बदला जा सकता है, लेकिन इसमें 4 अन्य वर्ण जोड़े जाएंगे:?$i.",":""

    क्योंकि मैं 0. Derp के लिए जाँच नहीं कर रहा था बड़ा हो गया। टाइटस द्वारा 13 से छोटा!


    2
    मैं वास्तव में PHP नहीं जानता, लेकिन क्या यह कोड सुनिश्चित करता है कि हर साल एक शून्य शामिल हो?
    लकोनी

    यह कोड संख्या में शून्य की जांच नहीं करता है।
    krzysiej

    1
    13 बाइट्स छोटी:for($i=999;$i++<1e4;)echo!strpos($i,48)|array_sum(str_split($i))-9?" ":$i;
    टाइटस

    यहाँ एक और बाइट है: ?"$i,":""एर ... अब दूसरा रास्ता गोल:?"":"$i,"
    टाइटस

    वास्तव में @Titus जो एक जोड़े बाइट्स को जोड़ता है। जब तक हम एक स्ट्रिंग w / इसे शामिल नहीं करते हैं तब तक हमें $ i के आसपास उद्धरणों की आवश्यकता नहीं है।
    aslum


    2

    स्काला ( 76 63 61 56 बाइट्स)

    for(n<-0 to 9000;t=n+""if t.sum==201&t.min<49)println(t)
    

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

    • सुझाव के लिए लाइकोनी का धन्यवाद
    • जो किंग की टिप्पणी को लागू करने के बाद दो और बाइट्स शेड

    1
    PPCG में आपका स्वागत है! क्या आपको अंदाजा है कि TIO पर चलने के लिए इस कोड को प्राप्त करने के लिए शीर्ष लेख या पाद लेख अनुभाग में क्या जोड़ने की आवश्यकता है? इसे ऑनलाइन आज़माएं!
    लैकोनी

    @ लिकोनी, नहीं जानता था कि मैं टीआईओ में स्काला चला सकता हूं। ठीक कर दिया। टिप्पणी के लिए धन्यवाद।
    जिरोक

    1
    ऐसा लगता है कि t.sum==201इसके बजाय काम करता है t.map(_.asDigit).sum==9
    लैकोनी

    आपको दिलचस्प स्काला में गोल्फ के लिए हमारे सुझाव मिल सकते हैं । जैसे यह दिखता है कि s"$n"हो सकता है n+""और s"$t "हो सकता है t+" "
    लैकोनी

    1
    जब से आप राशि का उपयोग कर रहे हैं 201 चाल है, तो रेंज को 999 पर शुरू करने की आवश्यकता नहीं है
    जो किंग


    1

    जाप, 16 बाइट्स

    अंक सारणियों की एक सरणी देता है।

    L²õì l4 k_ת9aZx
    

    झसे आज़माओ


    व्याख्या

    L                    :100
     ²                   :Squared
      õ                  :Range [1,L²]
       ì                 :Convert each to a digit array
         l4              :Filter elements of length 4
            k_           :Remove each Z that returns truthy (not 0)
              ×          :  When reduced by multiplication
               ª         :  OR
                  Zx     :  When reduced by addition
                9a       :   And subtracted from 9
    

    1
    ओपी ने फैसला किया है कि अंक सरणियाँ दुर्भाग्य से वैध आउटपुट नहीं हैं: o (
    सोक

    1

    एपीएल (एनएआरएस), 45 चार्ट, 90 बाइट्स

    f←{⍵×⍳(0∊x)∧9=+/x←⍎¨⍕⍵}⋄f¨1e3..5e3⋄f¨5e3..9e3
    

    कुछ स्वरूपण का परीक्षण करें:

    1008  1017  1026  1035  1044  1053  1062  1071  1080  1107  1170  1206  1260  
      1305  1350  1404  1440  1503  1530  1602  1620  1701  1710  1800  2007  2016  
      2025  2034  2043  2052  2061  2070  2106  2160  2205  2250  2304  2340  
      2403  2430  2502  2520  2601  2610  2700  3006  3015  3024  3033  3042  3051  
      3060  3105  3150  3204  3240  3303  3330  3402  3420  3501  3510  3600  
      4005  4014  4023  4032  4041  4050  4104  4140  4203  4230  4302  4320  4401  
      4410  4500 
    5004  5013  5022  5031  5040  5103  5130  5202  5220  5301  5310  5400  6003  
      6012  6021  6030  6102  6120  6201  6210  6300  7002  7011  7020  7101  7110  
      7200  8001  8010  8100  9000 
    

    संभव विकल्प

    r←f;i;x
       r←⍬⋄i←1e3⋄→B
    A: r←r,i
    B: i+←1⋄→A×⍳(0∊x)∧9=+/x←⍎¨⍕i⋄→B×⍳i≤9e3
    

    1

    जेली , 13 बाइट्स

    ȷ4µṢÄm3Ḍ)ẹ9ṫ4
    

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

    कैसे?

    ȷ4µṢÄm3Ḍ)ẹ9ṫ4 - Link: no arguments
    ȷ4            - literal 10^4 = 10000
      µ     )     - for each in range (1,2,3,...,10000): e.g. 3042       or  5211
       Ṣ          -   sort (given an integer makes digits)    [0,2,3,4]      [1,1,2,5]
        Ä         -   cumulative addition                     [0,2,5,9]      [1,2,4,9]
         m3       -   modulo 3 slice (1st,4th,7th...)         [0,9]          [1,9]
           Ḍ      -   convert from decimal digits             9              19
             ẹ9   - 1-based indices equal to nine             [9,99,999,1008,1017,...,8100,9000]
               ṫ4 - tail from the 4th index                   [1008,1017,...,8100,9000]
    
    हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
    Licensed under cc by-sa 3.0 with attribution required.