संख्याओं का त्रिभुज तरंग मुद्रित करें


14

एक लहर के लिए आयाम और अवधि को देखते हुए, लहर को प्रिंट करें। अधिक विवरण के लिए नमूना आउटपुट देखें। लहरों की कुल संख्या अवधि के बराबर होती है, और प्रत्येक लहर की ऊंचाई आयाम के बराबर होती है। आयाम और अवधि 10 से कम है। आप अनुगामी स्थानों को अनदेखा कर सकते हैं लेकिन प्रमुख स्थानों को नहीं।

Sample Input
3 2

Sample Output
  3           3    
 232         232  
12321 12321 12321 12321
       232         232
        3           3  

2
यह साइन की तुलना में त्रिकोण की तरह दिखता है।
जेबी

मैं सोच रहा हूं कि यह ascii-artटैग के तहत आता है । लेकिन कला हिस्सा काफी मौजूद नहीं है, हो सकता है कि आस्की ग्राफिक्स के लिए एक और टैग होना चाहिए?
जुआन

मुझे लगता है, आपका मतलब "अवधि की संख्या" है न कि आवृत्ति। आवृत्ति कारों में RPM की तरह (समय की संख्या) / समय है।
डॉ। बिसरिसेर

@ जुआन, मुझे लगता है कि लोग आस्की-कला के सवालों की खोज कर रहे हैं, शायद यह देखकर कोई बुरा नहीं लगेगा कि परिणाम में शामिल हैं
gnibbler

क्या मुझे प्रत्येक पंक्ति में प्रमुख व्हाट्सएप रखने की अनुमति है? मुझे तीन चार बचाएंगे।
फूजएक्सएक्सएल

जवाबों:


4

डायलॉग एपीएल, 43 40 बाइट्स

{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)(n,1-n←2×⍵)↑↑b⍴¨⍕¨b←a,1↓⌽a←⍳⍵}

{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)n(1-n←2×⍵)↑↑⍴∘⍕¨⍨a,1↓⌽a←⍳⍵}( साभार, मोरिस ज़ुक्का )

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

मार्टिन ब्यूटनर के सीजेम उत्तर से कुछ प्रेरणा लेना :

{⍉⊃⍪/⍺⍴⊂(⌽⍪⊢)n(1-n←2×⍵)↑↑⍴∘⍕¨⍨a,1↓⌽a←⍳⍵}
                                   a←⍳⍵ ⍝ numbers 1 2 3, call them "a"
                                  ⌽     ⍝ reverse them: 3 2 1
                                1↓      ⍝ drop one: 2 1
                              a,        ⍝ prepend "a": 1 2 3 2 1
                         ⍴∘⍕¨⍨          ⍝ format a[i] and repeat it a[i] times:
                                        ⍝     (,'1') '22' '333' '22' (,'1')
                        ↑               ⍝ mix, i.e. obtain a character matrix:
                                        ⍝    ┌───┐
                                        ⍝    │1  │
                                        ⍝    │22 │
                                        ⍝    │333│
                                        ⍝    │22 │
                                        ⍝    │1  │
                                        ⍝    └───┘
             n(1-n←2×⍵)↑                ⍝ take a 2×⍵ by 1-2×⍵ matrix
                                        ⍝ (negative length extends backwards):
                                        ⍝    ┌─────┐
                                        ⍝    │  1  │
                                        ⍝    │  22 │
                                        ⍝    │  333│
                                        ⍝    │  22 │
                                        ⍝    │  1  │
                                        ⍝    │     │
                                        ⍝    └─────┘
        (⌽⍪⊢)                           ⍝ the reverse of it, vertically joined with it
                                        ⍝    ┌─────┐
                                        ⍝    │  1  │
                                        ⍝    │ 22  │
                                        ⍝    │333  │
                                        ⍝    │ 22  │
                                        ⍝    │  1  │
                                        ⍝    │     │
                                        ⍝    │  1  │
                                        ⍝    │  22 │
                                        ⍝    │  333│
                                        ⍝    │  22 │
                                        ⍝    │  1  │
                                        ⍝    │     │
                                        ⍝    └─────┘
     ⍺⍴⊂                                ⍝ take ⍺ copies
  ⊃⍪/                                   ⍝ join them vertically
 ⍉                                      ⍝ transpose

हाहा, और मैं एपीएल को एक बार के लिए काफी अंतर से हराकर बहुत खुश था। : डी
मार्टिन एंडर

मैं कोशिश नहीं की है अगर तुम नहीं था :) वैसे, यह आपके जवाब की तरह दिखता है और साथ ही साथ अन्य एपीएल उत्तर गलत उत्पादन कर रहे हैं। नमूने के अनुसार, त्रिकोण को केंद्रीय रेखा पर मिलना चाहिए।
ngn

ओह, अच्छी पकड़, तय!
मार्टिन एंडर

1
आप इसे 2 और करके गोल्फ कर सकते हैं: b⍴¨⍕¨b 2 को फिर से लिखा जा सकता है, जैसा कि मुझे लगता है। महान जवाब btw, मुझे यह बहुत पसंद है!
मोरिस ज़ुका

आप बहुत दयालु हैं! मैं सिर्फ महसूस किया गया है मैं भी छोटा कर सकते हैं (n,1-n←2×⍵)करने के लिए n(1-n←2×⍵)
नागन

4

पायथन - 135 वर्ण

A,F=map(int,raw_input().split());R=range
for y in R(-A+1,A):print"".join((" %s"%x)[-x<s*y<1]for s in(1,-1)for x in R(1,A)+R(A,-1,-1))*F

एक अग्रणी स्थान वाला यह संस्करण 132 वर्ण है

A,F=map(int,raw_input().split());R=range
for y in R(-A+1,A):print"".join((" %s"%x)[-x<s*y<1]for s in(1,-1)for x in R(A)+R(A,0,-1))*F

यह भी काफी कम हो सकता है अगर स्टड से पढ़ने की आवश्यकता नहीं है या यहां तक ​​कि अगर इनपुट अल्पविराम अलग है

अल्पविराम से अलग किए गए इनपुट के लिए, पहली पंक्ति बन जाती है

A,F=input();R=range

4

एपीएल (77)

,/{×⍎⍵:⍵⋄' '}¨¨⊃∘↑∘⍕¨¨K⍴⊂(⊖M),⍨M←(2⍴N+N-1)↑(0 1↓M),⍨⌽M←(⌽⊖/¨M)×≥/¨M←⍳2⍴⊃N K←⎕

3

जे, 87 वर्ण

एक कार्यक्रम के रूप में:

b=:]\@(]#~' '~:])(":@:>:@i.@-)
,.~^:(<:Y)(,.|.)@(' ',.~((<:({."1|."1)b),.b),' '$~2<:])X
        Y                                              X

इस तरह चलता है:

,.~^:(<:2)(,.|.)@(' ',.~((<:({."1|."1)b),.b),' '$~2#<:) 3
  3           3         
 232         232        
12321 12321 12321 12321 
       232         232  
        3           3   
,.~^:(<:4)(,.|.)@(' ',.~((<:({."1|."1)b),.b),' '$~2#<:) 2
 2       2       2       2       2       2       2       2      
121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 
     2       2       2       2       2       2       2       2 

यह 5 और वर्ण है यदि हमें एक फ़ंक्शन F के रूप में इसकी आवश्यकता है:

3 F 2
  3           3         
 232         232        
12321 12321 12321 12321 
       232         232  
        3           3   

मुझे संदेह है कि क्या तर्क देने के रूप में यह मायने रखता है।

2

हास्केल ( 226 225 222 220 214)

हास्केल में मेरी कोशिश:

import List
n!k|n>k=p:n!(k+1)++[p]|0<1=[p]where p=(n-1)?" "++k?show k++(n-k)?" ">>=id
f[n,k]=k?(n!1++(2*n-1)?' ':map reverse(n!1)++[(2*n-1)?' '])>>=id
main=interact$unlines.transpose.f.map read.words
(?)=replicate

क्षमा करें दोस्तों, (€)यह दूर अनुकूलित है, यह विरोध करने के लिए एक € के लिए तीन बाइट्स लेता है! जो केवल एक बाइट लेता है।
यहाँ एक "बीटा संस्करण" है, जो कल्पना को संतुष्ट नहीं करता है:

import List

-- Creates a single wave of numbers. k should be equal to 1
-- and is used for internal stuff,
wave n k|n==k=[peek]
        |otherwise = peek:wave n(k+1)++[peek] where
  peek=replicate(n-1)" "++replicate k(show k)++replicate(n-k)" ">>=id

-- Creates a full wave
-- k: number of waves, n: size of waves
fullWave[n,k]=unlines.transpose.concat.replicate k$wave n 1++map reverse(wave n 1)

main=interact$fullWave.map read.words

1
EUR ऑपरेटर! पहली बार मैं इसका सामना करता हूं :)
जेबी

1
मुझे लगा कि प्रोग्रामिंग भाषाओं में बहुत भेदभाव किया जाता है। और क्योंकि मैं एक अप्रयुक्त ऑप की तलाश में था, यह बहुत काम आया।
FUZxxl

4
यह क्या करता है? क्या यह 1.35 * अमेरिकी ऑपरेटर है? :)
gnibbler


1

सीजेएम, 45 बाइट्स

CJam इस चुनौती से बहुत छोटा है, इसलिए यह उत्तर ग्रीन चेकमार्क के लिए योग्य नहीं है (जिसे marinus के APL उत्तर के लिए अपडेट किया जाना चाहिए)। यह अभी भी एक मजेदार थोड़ा व्यायाम था।

r~:I2*,{)IS*I@I\-z-_a*+I~)>I(S*+}%_Wf%+r~*zN*

इसका परीक्षण यहां करें।

विचार आधा अवधि उत्पन्न करने के लिए है खड़ी है, तो जैसे:

  1  
 22  
333  
 22  
  1  

(प्लस अगली खाली पंक्ति जो एसई निगल जाती है)। इसके बाद डुप्लिकेट किया जाता है, प्रत्येक पंक्ति को उलटा कर दिया जाता है, और अवधि का दूसरा भाग जोड़ा जाता है। फिर पूरी चीज को अवधि की संख्या द्वारा दोहराया जाता है, और अंत में ग्रिड को क्षैतिज के साथ लहर को उन्मुख करने के लिए स्थानांतरित किया जाता है।

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