त्रिकोणीय संख्या


16

(नहीं, वे नहीं )

चुनौती

आपको दो इनपुट दिए जाएंगे। पहला एक धनात्मक पूर्णांक है n > 0, जिसका उपयोग n x nसंख्याओं के एक सही त्रिभुज के उत्पादन के लिए किया जाता है 1, 2, 3, ... n। यह त्रिभुज एक कोने में शुरू होता है और क्षैतिज और लंबवत रूप से एक और तिरछे दो से बढ़ता है। स्पष्टीकरण के लिए नीचे दिए गए उदाहरण देखें। स्तंभों के बीच एक स्थान रखें और सभी संख्याओं को उनके विशेष स्तंभों में दाईं ओर रखें। (यह सब के बाद )।

दूसरा इनपुट, xआपकी पसंद के चार अलग-अलग एकल ASCII वर्णों में से एक है जो त्रिकोण के शुरुआती कोने (और इसलिए अभिविन्यास) को निर्धारित करता है। उदाहरण के लिए, आप उपयोग कर सकते हैं 1,2,3,4या a,b,c,dया #,*,!,), आदि कृपया अपने उत्तर में निर्दिष्ट करें कि अभिविन्यास कैसे काम करता है।

इस चुनौती में स्पष्टीकरण के लिए, मैं का उपयोग करेगा 1,2,3,4जो के अनुरूप होगा 1ऊपरी छोड़ दिया है, के लिए 2ऊपरी-दाएँ के लिए, और इतने पर दक्षिणावर्त।

उदाहरण

उदाहरण के लिए, निम्न के लिए n = 5, x = 1आउटपुट:

1 2 3 4 5
2 3 4 5
3 4 5
4 5
5

इनपुट के लिए n = 11, x = 1निम्न आउटपुट करें (अतिरिक्त स्थानों पर ध्यान दें ताकि एकल अंक सही-संरेखित हों):

 1  2  3  4  5  6  7  8  9 10 11
 2  3  4  5  6  7  8  9 10 11
 3  4  5  6  7  8  9 10 11
 4  5  6  7  8  9 10 11
 5  6  7  8  9 10 11
 6  7  8  9 10 11
 7  8  9 10 11
 8  9 10 11
 9 10 11
10 11
11

इनपुट n=6और x=2आउटपुट के साथ:

6 5 4 3 2 1
  6 5 4 3 2
    6 5 4 3
      6 5 4
        6 5
          6

इनपुट n = 3और x = 4आउटपुट के साथ:

3
2 3
1 2 3

इनपुट n = 1और किसी भी x, आउटपुट के साथ:

1

नियम

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

यह सवाल सिर्फ यह + यह है । मुझे अभी तक पता नहीं है, लेकिन मुझे ऐसा लगता है कि यह उनमें से एक है।
पोस्ट रॉक गार्फ हंटर

4
@WheatWizard मुझे नहीं लगता कि उन चुनौतियों में से किसी का भी जवाब यहाँ प्रतिस्पर्धी होने के लिए तुच्छ रूप से संशोधित किया जा सकता है।
AdmBorkBork

सच कहूं तो मुझे पता है कि बहुत से लोग कहते हैं कि एक नकल करता है, लेकिन जहां तक ​​मैं यह बता सकता हूं कि यह नियम नहीं है। मेरे लिए एक डुप्लिकेट एक ऐसा प्रश्न है जो चुनौती के संदर्भ में कुछ भी प्रदान नहीं करता है जो मौजूदा प्रश्नों द्वारा प्रदान नहीं किया गया है।
पोस्ट रॉक गार्फ हंटर


मैंने वह जवाब पढ़ा है। एक अधिक विशिष्ट संदर्भ में इसकी सिफारिश एक सार्वभौमिक शासन नहीं है।
पोस्ट रॉक गार्फ हंटर

जवाबों:



1

MATL , 18 बाइट्स

:&YhiX!VZ{' 0'2:YX

पहले इनपुट है n। दूसरा इनपुट है x, जो हो सकता है:

  • 0: बाएं से बाएं
  • 1: नीचे बाएँ
  • 2: नीचे दाएं
  • 3: दायां शीर्ष

(या यह कोई अन्य पूर्णांक हो सकता है, जिसे व्याख्या किया जाता है modulo 4)।

MATL ऑनलाइन पर यह कोशिश करो !


1

एपीएल (डायलॉग) , 29 बाइट्स

{' '@(=∘0)⌽∘⍉⍣⍺⊢↑⌽(⍳+⍵-⊢)¨⍳⍵}

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

कैसे?

¨⍳⍵- की iसीमा में प्रत्येक के लिएn

(⍳+⍵-⊢) - की रेंज का उत्पादन i वेक्टरकृत जोड़ के साथn - i

↑⌽ - उल्टा और चपटा

⌽∘⍉ - दाएं घुमाएं

⍣⍺⊢ - x बार

' '@(=∘0) - शून्य हटा दें


1

जावास्क्रिप्ट 130 128 154 142 138 138 135 133 बाइट्स

* फिक्स्ड पेडिंग मुद्दे

A=(n,x)=>(j=>{for(;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S=O,i=j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+O:O).padStart(j.length+1)})(n+=s=O="")||s

console.log(A(6,1))
console.log(A(6,2))
console.log(A(6,3))
console.log(A(6,4))

console.log(A(12,1))
console.log(A(12,2))
console.log(A(12,3))
console.log(A(12,4))

/* 154 solution
A=(n,x)=>{s=""
for(j=n;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=j;i;S=i-->n?~-x%3?S+X:X+S:~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart((j+"").length+1)
return s
}

142 solution
A=(n,x)=>{s=""
for(j=n;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=j;i;S=i-->n ^ ~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart((j+"").length+1)
return s
}

138 solution
A=(n,x)=>{s=""
for(j=n+" ";n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=+j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart(j.length)
return s
}

135 solution
A=(n,x)=>{for(j=n+=s=O="";n--;s=x<3?S+`
`+s:s+S+`
`)
for(S=O,i=j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+O:O).padStart(j.length+1)
return s
}
*/


@AdmBorkBork मुझे लगता है कि मैंने इसे अब ठीक कर दिया है
DanielIndie

0

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

n,x=input()
r=range(n)
for l in zip(*[(r+[n]+['']*i)[-n:]for i in r][::1-x%4/2*2])[::1-x/3*2]:print' %%%ds'%len(`n`)*n%l

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

(r+[n]+['']*i)[-n:]नंबर सूची में कुछ रिक्त स्ट्रिंग जोड़ देगा, और, सही आकार को काट zipके साथ [::1-x%4/2*2]और [::1-x/3*2]रोटेशन कर देगा, और %%%ds'%len(`n`)*n(जैसे fomating के लिए एक स्ट्रिंग उत्पन्न होगा ' %3s %3s %3s'...+ रिक्त स्ट्रिंग सूची प्रत्येक संख्या पर इस्तेमाल किया जा करने के लिए)


0

मैथेमेटिका, 89 बाइट्स

(R=Reverse;Grid[{#&,R/@#&,R[R/@#]&,R@#&}[[#2]]@PadRight@Array[Range[#,s]&,s=#]/. 0->""])&   

यहाँ एक और समाधान है जो TIO में काम करता है

गणितज्ञ, 122 बाइट्स

(R=Reverse;StringRiffle[""<>ToString/@#&/@({#&,R/@#&,R[R/@#]&,R@#&}[[#2]]@PadRight@Array[#~Range~s&,s=#]/. 0->" "),"\n"])&


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


0

चारकोल , 39 बाइट्स

Nτ≔EτEτ◧׋⁺ιλτI⊕⁺ιλLθσFN≔⮌EσEσ§μλσEσ⪫ι 

इसे ऑनलाइन आज़माएं! नोट: अनुगामी स्थान। लिंक कोड के वर्बोज़ संस्करण के लिए है। दूसरा मान एंटीलॉक वाइज घुमावों की संख्या है, इसलिए 0 ऊपरी बाएं, 1 निचला बाएं, 2 निचला दायां, 3 ऊपरी दायां है। स्पष्टीकरण:

Nτ                                      Assign the first input as an integer
   EτEτ                                 Map in two dimensions
               ⊕⁺ιλ                     Sum of zero-indexed coordinates plus 1
              I                         Cast to string
         ‹⁺ιλτ                          Is this the upper left triangle?
        ×                               Repeat the string once if so
       ◧           Lθ                   Pad to length of first input
  ≔                  σ                  Assign to variable
                          EσEσ§μλ       Transpose the array
                         ⮌              Reflect the array, giving a rotation
                        ≔        σ      Reassign to variable
                       N                Second input as an integer
                      F                 Repeat that many times
                                  Eσ    Map over array
                                    ⪫ι  Join with spaces and implicitly print

0

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

let f = 

    (n,x)=>(L=x=>(''+x).length,M=b=>x&b?(c,i,a)=>a[n-1-i]:c=>c,Array(n).fill(b=' ').map((c,i)=>b.repeat(L(n)-L(++i))+i).map((c,i,a)=>a.map((v,j)=>j>i?b.repeat(L(n)):v)).map(M(1)).map(c=>c.map(M(2))).map(c=>c.join(b)))


function printTriangle() {  // display array of strings returned by f
    o.innerText = f(
       +Length.value, // number
       Rotate.value[0] // ASCII char
    ).join('\n');
}
Length: <input type="text" value="11" id="Length"><br>
Rotate: <input type="text" value="0" id="Rotate"> 0,1,2,3<br>
<button type="button" onclick="printTriangle()">
  OK
</button>
<br>
<pre id="o"></pre>

कम गोल्फ वाला

(n,x)=>(
    L= x=> (''+x).length,                // strlen(x)
    M= b=> x&b ? (c,i,a)=>a[n-1-i] : c=>c, // reverse or identity map
    Array(n).fill(b=' ')
   .map((c,i)=>b.repeat(L(n)-L(++i))+i)  // a complete line of numbers
   .map((c,i,a)=>a.map((v,j)=>j>i?b.repeat(L(n)):v)) // to 2-d array
                                         // with spaces for blank numbers
   .map(M(1))                            // flip vertically?
   .map(c=>c.map(M(2)))                  // flip horizontally?
   .map(c=>c.join(b))                    // convert lines to strings
)

अभिविन्यास पर ध्यान दें।

दूसरा पैरामीटर {'0', '1', '2', '3'} से एक वर्ण है और स्वचालित रूप से &ऑपरेटर द्वारा एक संख्या में परिवर्तित किया जाता है । यदि संख्या का बिट 0 (lsb) सेट है, तो लाइनें लंबवत रूप से फ़्लिप की जाती हैं। यदि बिट 1 (nlsb) सेट है, तो कॉलम क्षैतिज रूप से फ़्लिप किए जाते हैं। अन्य दशमलव अंकों के वर्णों का उपयोग अनुमानित परिणामों के साथ किया जा सकता है।

संबद्ध पिछले स्थान

आउटपुट स्ट्रिंग में रिक्त प्रविष्टियों को रिक्त स्थान के साथ बदल दिया गया है, जिसका अर्थ है कि लाइनों में झुकाव के स्थान '0' और '1' हैं।


0

लुआ, 250 बाइट्स

function f(w,m)d=""for y=1,w do for x=1,w do d=string.format("%s%"..tostring(w):len().."s ",d,m<2 and(y+x-1<=w and x+y-1 or"")or(m<3 and(x>=y and w-x+y or"")or(m<4 and(y+x-1>=w and w+w-x-y+1 or"")or(y>=x and w-y+x or""))))end;d=d.."\n"end;print(d)end

उदाहरण के रूप में वर्णित तरीकों के लिए मापदंडों [w] मूढ़ और [m] ode 1,2,3,4 का उपयोग करता है।


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