अंकों का अवरोध


18

टेक्स्ट के इस ब्लॉक को आउटपुट / प्रिंट करें:

1234567890
2468013579
3691470258
4815926037
5049382716
6172839405
7306295184
8520741963
9753108642
0987654321

स्वीकार्य प्रारूप में शामिल हैं:

  • अनुगामी newlines / व्हॉट्सएप
  • तार की सूची
  • पात्रों की सूचियों की सूची
  • पूर्णांकों की सूचियों की सूची

हालाँकि, पूर्णांक की सूची स्वीकार्य नहीं है क्योंकि अंतिम पंक्ति पूर्णांक नहीं है।

यह । बाइट्स जीत में सबसे छोटा जवाब। मानक खामियां लागू होती हैं।

जवाबों:






5

MATL , 12 11 बाइट्स

लुइस के लिए एक बाइट धन्यवाद बचा लिया। मैं भूल रहा हूँ कि &नकल और ट्रांसपोज़िंग का एक शॉर्टकट है।

10:&*11\10\

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

@ मार्टिन एल्गोरिदम का उपयोग करना: x*y % 11 % 10

स्पष्टीकरण:

10            % Pust 10 to the stack. Stack: 1
  :           % 1-based range. Stack: [1 2 3 ... 10]
   &          % Duplicate range. Stack: [1 2 3 ... 10],[1 2 3 ... 10]
              % Transpose last range. Stack [1 2 3 ... 10],[1;2;3 ...10]
    *         % Multiply with broadcasting. Stack: [1 2 3 ...;2 4 6...] (10-by-10 array)
     11       % Push 11 to the stack. Stack [1 2 3 ...;2 4 6 ...], 11
       \      % Modulus. 
        10    % Push 10 to the stack.
          \   % Modulus
              % Implicit display 

उसी द्वारा:

10t:&*11\w\

आप एक बाइट की जगह बचा सकता t!*द्वारा&*
लुइस Mendo

1
अगर आप टिप्पणियों में कोड स्निपेट के अंत में बैकस्लैश करते हैं तो @LuisMendo डबल बैकस्टिक्स।
मार्टिन एंडर

@MartinEnder धन्यवाद! मुझे याद नहीं है कि यह कैसे काम करता है, इसलिए मैं आसान रास्ते के लिए चला गया :-)
लुइस मेंडो

@LuisMendo हाँ, यह विभिन्न सिंटैक्स का उपयोग करके पोस्ट और टिप्पणियों के साथ थोड़ा भ्रमित है।
मार्टिन एंडर

धन्यवाद @LuisMendo! डॉक्स में ऐसा नहीं है?
स्टीवी ग्रिफिन



2

रेटिना , 59 बाइट्स

बाइट गिनती आईएसओ 8859-1 एन्कोडिंग मानती है।


10$*
1
,1$`
,1+
$_¶
(?<=(¶?.+)+)1
$#1$*
1{10}1?

,(1*)
$.1

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

व्याख्या

एक और कार्यान्वयन ...% 11% 10 एल्गोरिथ्म। रेगेक्स के साथ करने का मज़ेदार हिस्सा यह है कि हम एक ही बार में दोनों मोडुलो कंप्यूटेशन का ध्यान रख सकते हैं।


10$*

स्ट्रिंग को प्रारंभिक रूप से दस 1एस।

1
,1$`

उनमें से प्रत्येक को अल्पविराम, एक, और उपसर्ग को उस एक के सामने बदलें। यह देता है ,1,11,...,1111111111, यानी एक unary रेंज।

,1+
$_¶

अब प्रत्येक रेंज तत्वों को एक लाइनफीड द्वारा पूरे स्ट्रिंग के साथ बदलें। यह हमें वर्तमान कॉलम को इंगित करने वाली संख्याओं का 10x10 ग्रिड देता है।

(?<=(¶?.+)+)1
$#1$*

प्रत्येक को मिलाएं 1और निर्धारित करें कि समूह एक को दोहराते हुए वह किस पंक्ति पर है। इसके 1साथ कई 1एस बदलें । यह पंक्ति के 1-आधारित सूचकांक द्वारा प्रत्येक पंक्ति में मूल्यों को गुणा करता है।

1{10}1?

अब करते हैं mod 11, mod 10 एक स्टेप में। मॉड 11 करने के लिए , हम आम तौर 1{11}पर स्ट्रिंग से बचे रहने के लिए स्ट्रिंग से सभी को हटा देंगे । और फिर हम उसके 1{10}बाद निकाल देंगे । लेकिन अगर हम 1संभव हो तो दस एस प्लस को हटा दें , रेगेक्स इंजन का लालच हमारे लिए संभव के रूप में लंबे समय तक मॉड 11 करेगा , और यदि नहीं, तो यह कम से कम 10 मॉड की कोशिश करेगा ।

,(1*)
$.1

अंत में, हम प्रत्येक संख्या को दशमलव में बदलकर उसकी लंबाई के साथ बदल देते हैं।


2

05AB1E , 14 बाइट्स

11GTLN*11%T%})

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

हमेशा की तरह मार्टिन के एल्गोरिथ्म का उपयोग करता है।


ओह, उस पैटर्न के लिए एक एल्गोरिथ्म है। यह बताता है कि मैं औसत उत्तर से 30 बाइट ऊपर क्यों हूं।
मैजिक ऑक्टोपस Urn


2

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

_=>[...1e9+''].map((_,a,b)=>b.map((_,c)=>-~a*++c%1‌​1%10))

बची हुई 4 बाइट्स शैगी की बदौलत और 8 बाइट्स अरनौलड की बदौलत।


1
66 बाइट्स _=>[...a=Array(10)].map((_,x)=>[...a].map((_,y)=>(x+1)*++y%11%10)):। तुम मुझे 4 बाइट्स बचाओ, मैं तुम्हें 4 बाइट्स बचा
झबरा

बहुत बहुत धन्यवाद। आपने एक बग भी तय किया, इसलिए मैंने आपके समाधान के एक और 2 बाइट्स का
ल्यूक

1
आप कॉलबैक के तीसरे पैरामीटर का उपयोग करके 5 बाइट्स बचा सकते हैं map()और 1e9+''इसके बजाय 3 बाइट्स का उपयोग करके Array(10)। की ओर जाता है _=>[...1e9+''].map((_,x,a)=>a.map((_,y)=>-~x*++y%11%10))
Arnauld

@ अरनल्ड: 1e9ट्रिक के लिए धन्यवाद । मुझे नहीं पता था कि एक। मैंने तीसरे तर्क का उपयोग करने के बारे में सोचा था, लेकिन किसी कारण से मैंने इसका उपयोग नहीं किया।
ल्यूक

मैंने हाल ही में यहां इसी तरह की चाल की एक सूची तैयार की है
अरनुलद

2

Japt , १६ १२ 11 बाइट्स

यह पता चला है कि यह मेरा 200 (अपरिभाषित) उत्तर था :)

लगता है कि यह वही फॉर्मूला है जो मार्टिन ने देखा था

Aõ
£®*X%B%A

झसे आज़माओ ( -Rकेवल विज़ुअलाइज़ेशन उद्देश्यों के लिए ध्वज)

  • 4 बाइट्स धन्यवाद के लिए सहेजे गए ल्यूक हुए कि एरे की एक सरणी लौटना अनुमत था।

व्याख्या

Aõ    :Generate an array of integers from 1 to 10, inclusive.
£     :Map over each element in the array, returning...
®     :Another map of the same array, which...
*X    :Multiplies the current element of the inner function by the current element of the outer function...
%B    :Modulus 11...
%A    :Modulus 10.
      :Implicit output of resulting 2D array

मुझे इसे मारो ... आप अंतिम दो वर्णों को छोड़ सकते हैं, और इसके बजाय -Rध्वज का उपयोग कर सकते हैं
ल्यूक

1
इससे भी बेहतर, पिछले चार पात्रों को छोड़ दें। ऐसा लगता है कि अनुमति दी गई है ...
ल्यूक

हाँ, ऐसा लगता है जैसे आप सही हैं, धन्यवाद, @Luke :)
झबरा

1

जावा 8, 84 बाइट्स

o->{String r="";for(int x=0,y;++x<11;r+="\n")for(y=0;++y<11;r+=x*y%11%10);return r;}

@MartinEnder के गणितीय उत्तर के रूप में समान एल्गोरिथ्म का उपयोग करता है : 1-अनुक्रमित x*y%11%10

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

o->{                     // Unused Object parameter and String return-type
  String r="";           //  Result-String
  for(int x=0,y;++x<11;  //  Loop (1) from 1 to 11 (exclusive)
      r+="\n")           //    And append a new-line after every iteration
    for(y=0;++y<11;      //   Inner loop (2) from 1 to 11 (exclusive)
      r+=x*y%11%10       //    And append the result-String with `x*y%11%10`
    );                   //   End of inner loop (2)
                         //  End of loop (1) (implicit / single-line body)
  return r;              //  Return result-String
}                        // End of method

1

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

-6 बाइट्स ऑफेंशियलैम के लिए धन्यवाद।

मार्टिन के एल्गोरिथ्म का उपयोग करता है जिसके बारे में मुझे कोई समझ नहीं है कि वह इतनी तेजी से कैसे आया। o0

r=range(1,11)
print[[x*y%11%10for y in r]for x in r]

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


1
आशुलिपि r=range(1,11)6 बाइट्स बचाता है
आधिकारिक

2
इस कारण से कि मैंने सूत्र को इतनी तेज़ी से देखा है यह गणित है। मेरा और अनाथ की टिप्पणी का प्रश्न
मार्टिन एंडर

1

पायथ, 13 बाइट्स

mme%*kd11STST

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

-1 कार्लक्लस्टर को धन्यवाद ।

चलो दुहुइउउपे!


यदि आप eइसके बजाय एक बाइट % T
बचाते हैं तो

@KarlKastor ... और मैं इसे याद कर रहा था ।_
आउटगोल्फर

1

आर , 19 बाइट्स

1:10%o%1:10%%11%%10

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

कम से कम "R" -Loking बिट आर कोड मैंने कभी लिखा है। मार्टिन एंडर के उत्तर के रूप में एक ही एल्गोरिथ्म का उपयोग करता है (और साथ ही लगभग सभी अन्य उत्तर)। x %o% yके रूप में ही है outer(x, y)


1

चारकोल , 30 29 19 बाइट्स

Fχ«FχI﹪﹪×⁺¹ι⁺¹κ¹¹χ⸿

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

मार्टिन के सूत्र का उपयोग करता है

  • 10 बाइट्स ने नील को धन्यवाद दिया, एक बार फिर साबित किया कि मुझे अभी भी बहुत कुछ सीखना बाकी है ...

आपको अनुगामी »s की आवश्यकता नहीं है और जब आप ωइसके बजाय उपयोग कर सकते हैं ””तो बाइट्स के एक पूरे गुच्छा ⸿को इस प्रकार उपयोग करके बचा सकते हैं Fχ«FχI﹪﹪×⁺¹ι⁺¹κ¹¹χ⸿। (इससे पहले कि मैं इसके बारे में जानता था ⸿मैंने सुझाव दिया था J⁰ιजो अभी भी कई बाइट बचा सकता है।)
नील

@ नील यह ⸿रिवर्स ऑपरेटर है, यह आपके कोड के अंत में तर्कों के बिना क्या करता है? क्या यह प्रलेखित है?
चार्ली

1
नहीं है, उल्टा ऑपरेटर, है ⸿है move cursor to start of next lineचरित्र (जैसे , लेकिन एक अलग स्ट्रिंग में हो सकता है)।
नील


0

QBIC , 17 बाइट्स

[|?[|?a*b%11%z';

यह, निश्चित रूप से, मार्टिन की विधि का उपयोग करता है। यह इस QBasic कोड में अनुवाद करता है

व्याख्या

[|               FOR A = 1 to 10 ([ starts a FOR loop, | delimits the list of arguments; 
                 a FOR loop with 0 args loops from 1 to 10 by default with increment 1.
  ?              PRINT a newline
   [|            Start a second FOR loop from 1-10, iterator b
     ?           PRINT
      a*b%11%z   the result of Martin's formula.
              '; and suppress newlines/tabs/spaces

0

सी #, 81 बाइट्स

_=>{var r="";for(int x=0,y;++x<11;r+="\n")for(y=0;++y<11;r+=x*y%11%10);return r;}

समान एल्गोरिथ्म अन्य उत्तरों में से अधिकांश के रूप में और अनिवार्य रूप से @Kevins जावा उत्तर के C # पोर्ट ।



0

GolfScript , 37 24 बाइट्स

10,{){\)*11%10%}+10,%}%`

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

-13 एक चतुर चाल के लिए धन्यवाद मार्टिन एंडर ने सुझाव दिया।


यदि आप इसे एक पूर्ण कार्यक्रम ( {-> ;, }-> `) में बदल देते हैं, तो आप कम से कम पहले छोड़ सकते हैं [
मार्टिन एंडर

हालांकि ज़िप तकनीक के बजाय एक सरल नेस्टेड लूप का उपयोग करना बहुत कम है:{){\)*11%10%}+10,/n}10,/
मार्टिन एंडर

@MartinEnder उम्म ... आप अति प्रयोग करने लगते हैं /। ;)
एरिक आउटगोल्फ

@MartinEnder ओह, मैंने देखा कि आपने क्या किया ... आपने इस्तेमाल किया int blk +-> {int space contents-of-blk}
आउटगोल्फ

@MartinEnder ठीक है, मैंने आपकी +चाल को लागू कर दिया है ... हालाँकि मैंने आपका कोड थोड़ा बदल दिया है
Erik Outgolfer





0

PHP , 54 बाइट्स

for(;9>=$y++||9>=$x+=$y=print"
";)echo($x+1)*$y%11%10;

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

PHP , 56 बाइट्स

for(;$x++<=9;print"
")for($y=0;$y++<=9;)echo$x*$y%11%10;

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


1
आप कोष्ठक गिरा सकते हैं ()
क्रिस्टोफ

-2 बाइट्स:for(;<0>$y++||10>$x+=$y=print"\n";)echo($x+1)*$y%11%10;
टाइटस

... याfor($x=1;11>++$y||11>$x+=$y=print"\n";)echo$x*$y%11%10;
टाइटस


0

टीईसीओ, 45 बाइट्स

1un@i/
/10<@i/01234567890/jl10<qnc0a^t>jtl%n>

रॉड के पाइथन उत्तर का एक (काफी) सीधा कार्यान्वयन।

1un           !initialize register n to 1!
@i/<nl>/      !insert a newline!
10<           !loop for 10 rows!
@i/01234567890/  !insert the mysterious string of digits!
j             !move point to start of buffer!
l             !move forward past the newline!
10<           !loop for 10 digits on a line!
qnc           !move point forward by n characters!
0a^t          !print the character at point!
>             !end inner loop!
j             !move point to start of buffer!
t             !print (empty) line!
l             !move to start of digit string!
%n            !increment register n (for next line)!
>             !end outer loop!

<ESC> का उपयोग करके-प्रविष्ट कमांड और ^ T कमांड के लिए एक कंट्रोल कैरेक्टर दूसरे को बचाएगा तीन का उपयोग करने से पठनीयता की कीमत पर पाँच बाइट्स की ।

मार्टिन के mod-11 / mod-10 फॉर्मूले का उपयोग करना वास्तव में ^ A और ^ T के लिए नियंत्रणों का उपयोग करके 43 बाइट्स पर अधिक लंबा बनाता है, क्योंकि TECO के पास मॉड ऑपरेटर नहीं है।

0ur10<%run10<qn-10"g-11%n'qn\r0a^Tqr%n>^a
^A>

जब भी यह 10. से अधिक हो, मॉड 11 को qn by -11 में संख्या बढ़ाकर एक चालू फैशन में किया जाता है qn\r0a^T क्रमबद्ध तरीके अनुक्रम एडिटिंग बफर में संख्या को दशमलव अंकों में सम्मिलित करता है, पिछले अंक को उलट देता है, इसे बफर और प्रकारों से पुनर्प्राप्त करता है, अनिवार्य रूप से mod-10 कर रहे हैं।

मुझे उम्मीद थी कि यह छोटा होगा। ओह अच्छा।

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