B←{'/\ '['\/'⍳⍺⍺⍵]}
C←⊢,⌽B
C(⊢⍪⊖B)⊃,/{C⊖A↑⊖' /'[⍵≤∘.+⍨⍳⍵+1]}¨⌽⍳A←⎕
এটি অনলাইন চেষ্টা করুন!
ধরে নেওয়া যায় ⎕IO←0, যা অনেক সিস্টেমে স্ট্যান্ডার্ড, তাই প্রোগ্রামটি 0-ইনডেক্সড।
এটি একটি ট্রেডফেন যা এসটিডিএন এর মাধ্যমে ইনপুট নেয় takes
ব্যাখ্যা
(সামান্য পুরানো)
নোট যে ⍺বাম আর্গুমেন্ট, ⍵ডান আর্গুমেন্ট এবং ⍺⍺বাম অপারেটর।
Bহিরার আয়নায় সহায়তা করে এমন একটি ফাংশন। এটি ডান আর্গুমেন্ট হিসাবে স্ট্রিং এবং বাম হিসাবে বিপরীত ফাংশন লাগে (সুতরাং Bএকটি অপারেটর)।
B←{'/\ '['\/'⍳⍺⍺⍵]}
⍺⍺⍵ Apply ⍺⍺ on ⍵
'\/'⍳ Find the index of the reflected string in '\/' (if the character is not found in `'\/'`, then return an index out of the bounds of the string, ie `2` if the character is a space)
'/\ '[ ] Use these indexes on '/\ ' to reflect the '/\' characters
এবং এখন আমরা প্রোগ্রামটির মূল অংশে যাই।
A←⎕ Assign the input to variable A
⍳ Create a range 0 .. A-1
⌽ Reverse it so that it becomes A-1 .. 0
¨ For each element do (the right argument is the element):
⍳⍵+1 Create a range 0 .. ⍵
∘.+⍨ Create an addition table using the range to result in a matrix like so:
0+0 0+1 0+2 .. 0+⍵
1+0 1+1 1+2 .. 1+⍵
2+0 2+1 2+2 .. 2+⍵
...
⍵+0 ⍵+1 ⍵+2 .. ⍵+⍵
⍵≤ The elements of the matrix that are greater than or equal to the ⍵,
this creates a triangle matrix that looks like this:
0 0 .. 0 1
0 0 .. 1 1
..
1 1 .. 1 1
' /'[...] Index it in ' /' to get a character matrix
(ie replace 0s with spaces and 1s with '/'s)
⊖ Flip this vertically
A↑ Pad the top spaces
পরিসরের প্রতিটি উপাদানগুলির জন্য তৈরি সমস্ত ত্রিভুজগুলির ⌽⍳Aসমান উচ্চতা যাতে এটি পরে একে অপরের সাথে সংমিশ্রিত হতে পারে তা নিশ্চিত করার জন্য এটি প্রয়োজনীয় ।
⊖ Flip the matrix vertically again to go back to the original state
(⊢, ) Concatenate it with
⌽B itself, but flipped horizontally
,/ Concatenate all triangles formed by the range operator
⊃ The resulting matrix is nested, so this operator "un-nests" it
এখন প্যাটার্নের উপরের বাম অংশটি সম্পূর্ণ। বাকি সমস্তগুলি হ'ল এটি উলম্বভাবে এবং পরে অনুভূমিকভাবে ফ্লিপ করা।
(⊢⍪⊖B) Concatenate the resulting matrix with itself but flipped vertically
(the vertically flipped matrix is concatenated below of the original matrix)
Now the left part of the pattern is complete
(⊢,⌽B) Concatenate the resulting matrix with itself flipped horizontally
এবং এটাই! আউটপুট একটি অক্ষর ম্যাট্রিক্স /\এবং স্পেস সহ প্যাডযুক্ত।