কিছু হীরা দ্বিগুণ করুন


25

সমস্যা

ইতিবাচক পূর্ণসংখ্যার nযেখানে দেওয়া হয়েছেn < 100

নীচে একটি হীরক নিদর্শন আউটপুট:

ইনপুট n=1

/\/\
\/\/

ইনপুট n=2:

 /\      /\
//\\/\/\//\\
\\//\/\/\\//
 \/      \/

ইনপুট n=3:

  /\                /\
 //\\  /\      /\  //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
 \\//  \/      \/  \\//
  \/                \/

ইনপুট n=4:

   /\                              /\
  //\\    /\                /\    //\\
 ///\\\  //\\  /\      /\  //\\  ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
 \\\///  \\//  \/      \/  \\//  \\\///
  \\//    \/                \/    \\//
   \/                              \/

ইত্যাদি।

বিধি

  • প্রোগ্রাম এবং ফাংশন অনুমোদিত।
  • ট্রেলিং হোয়াইটস্পেস অনুমোদিত।
  • নেই /বা \অনুমতিপ্রাপ্ত লাইনে হোয়াইটস্পেসের শীর্ষস্থানীয় ।
  • ট্রেলিং এবং শীর্ষস্থানীয় নিউলাইনগুলি অনুমোদিত।
  • বাইট জিতে সংক্ষিপ্ত কোড

এটি সম্ভবত বেশ সম্পর্কিত


2
@ কারাসোকম্পুটিং আপনি এখনই ভাসা করছেন ...
এরিক দি আউটগলফার


1
@ ডিজাইমা এটি দিয়ে স্যান্ডবক্সে!
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং অবশ্যই, তবে কেন এবং কীভাবে ঘটেছিল তা প্রথমে আমাকে খুঁজে বের করতে হবে: পি
ডিজাইমা

উত্তর:


12

এসওজিএল ভি0.12 , 24 বাইট

ā.∫ā;∫ \*+}ø┼↔±╬¡;øΚ┼}╬³

এখানে চেষ্টা করুন!

ব্যাখ্যা:

ā                         push an empty array (the main canvas)
 .∫                  }    iterate over the input, pushing 1-indexed iteration
   ā;                       push an empty array below the iteration
     ∫    }                 iterate over the iteration counter
       \*                     push current iteration amount of slashes
         +                    append those to the 2nd array
           ø┼               append nothing (so it'd space the array to a square)
             ↔±             reverse horizontally (swapping slashes)
               έ           quad-palindromize with 0 overlap and swapping characters as required
                 ;          get the canvas ontop
                  øΚ        prepend to it an empty line (so the now bigger romb would be one up)
                    ┼       append horizontally the canvas to the current romb
                      ╬³  palindromize horizontally with no overlap and swapping characters

2
বাহ, এটি একটি অসুস্থ আদেশ।
ম্যাজিক অক্টোপাস উরন

@ কারাসোকম্পুটিং সাম্প্রতিক যোগও। প্রাসঙ্গিক ফাইল । এখনও অবশিষ্ট 190 টি অক্ষর সঙ্গে কাজ করতে জিনিসটা আছে
dzaima

বাহ, সুতরাং আপনার SOGOL এ 190 ফ্রি কমান্ড রয়েছে এবং আপনি ইতিমধ্যে দক্ষতার সাথে এটি গল্ফ করতে পারেন?
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং-এর অর্থ হ'ল লোল
ডিজাইমা

2
@ কারাসোকম্পুটিং কিন্তু একটি মজার সত্য হিসাবে, (আনুমানিক) 90/256 চরগুলি প্রয়োগ করা হয় না এবং 61/256 এর কোনও ডকুমেন্টেশন নেই
জাই

7

কাঠকয়লা , 30 27 বাইট

F⁺¹N«Fι«F⁴«↙⁻ικ↑⟲T»←»Mι←»‖M

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা: কাঠকয়ালের অঙ্কন আদিমগুলি হীরা আঁকতে পারে না, কারণ তির্যক চলনগুলি একই সমতার স্কোয়ারে থাকে। সম্পাদনা করুন: নতুন সমাধানটি হীরকের একপাশে আঁকতে হবে এবং তারপরে পুরো ক্যানভাসটিকে পাশের পাশটি আঁকতে প্রস্তুত করে ঘোরানো হবে, যাতে কোনও লুপটিতে হীরা আঁকতে দেওয়া হয়। এই লুপটি প্রতিটি হীরার জন্য সমস্ত অভ্যন্তরীণ হীরা আঁকতে একটি লুপে অন্তর্ভুক্ত থাকে। বাইরেরতম লুপ একে অপরের সাথে সংলগ্ন সমস্ত হীরা আঁকেন। শেষ পর্যন্ত চিত্রটি মিরর করা হয়েছে।

দ্রষ্টব্য যে চারকোল এর পরে প্রসারিত হয়েছে এবং অন্য একটি বাইট ব্যবহার করে সংরক্ষণ করা যেতে পারে Increment


আপনার যখন দরকার হয় 0.5 চরের গতিবিধিগুলি কোথায় :(
ক্যালকুলেটরফলাইন

6

এপিএল (ডায়ালগ) , 70 69 66 বাইট

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

এবং এটাই! আউটপুট একটি অক্ষর ম্যাট্রিক্স /\এবং স্পেস সহ প্যাডযুক্ত।


6

05AB1E , 47 43 41 35 34 33 32 বাইট

'/×ηηvy∞.C.Bø€∞¹NαGð.ø}})øíJ.B»∞

এটি অনলাইন চেষ্টা করুন!

(-4 বাইটস @ এমিগানাকে ধন্যবাদ যারা 3 টি উন্নতির পরামর্শ দিয়েছে)


এই ব্যাখ্যাটি পূর্ববর্তী সংস্করণের জন্য ছিল, তখন থেকে কয়েকটি পুনরাবৃত্তি হয়েছিল।

>                                          # [2]
 '/×                                       # ['//']
    η                                      # ['/','//']
     €η                                    # [['/'], ['/', '//']]
       vy                    }             # {For each element...}
         ∞                                 # Mirror horizontally.
          ¶¡                               # Split mirror on newlines.
            N£                             # Shave each diamond down a layer.
              .C                           # Horizontal center.
                .B                         # Pad for the transpose.
                  ø                        # Transpose.
                   €∞                      # Mirror each (vertically).
                     ¹NαFð.ø}              # Pad each list for transpose (verticaly).
                              )            # Wrap back to list...
                               €.B         # Pad each horizontally.
                                  ¦        # Remove the random numbers?
                                   ø       # Back to horizontal...
                                    €R     # Reverse to get correct order.
                                      J    # Join, no spaces.
                                       »   # Join newlines.
                                        ∞  # Final horizontal mirror.

আপনার হীরাগুলির মধ্যে ফাঁকা স্থান রয়েছে
LiefdeWen

@LiefdeWen হয় এই ঠিক আছে তো? নতুন লাইনের পেছনে ও এগিয়ে যাওয়ার সাথে?
ম্যাজিক অক্টোপাস উরন

আপনি ηপ্রত্যয়গুলির পরিবর্তে উপসর্গগুলি ব্যবহার করতে পারেন কারণ তারা এই স্ট্রিংয়ের জন্য একই।
এমিগিনা

¨এখানে এবং €Rএখন হিসাবে একই í
এমিলিগা

@ এমিগনা আমি এর মধ্যে কিছু গল্ফ করেছি, তবে আপনাকে ধন্যবাদ! আপনি একটি 33 বাইট উত্তর চেষ্টা করতে যা 100% আলাদা: পি?
ম্যাজিক অক্টোপাস উরন

5

সিজেম , 65 63 বাইট

q~_,:)_W%\+f{_2*S*a@2$-*\_,f{)'/*\Se[_W%'/'\er+}_W%Wf%+1$++}zN*

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এই ব্যাখ্যায় আমি ইনপুট নম্বরটি উল্লেখ করব n

q~        e# Read and eval the input (push n to the stack).
_,        e# Copy it an get the range [0 .. n-1].
:)        e# Increment each element to get [1 .. n].
_W%       e# Copy it and reverse it.
\+        e# Prepend the reverse to the original range, resulting in [n n-1 .. 1 1 .. n-1 n].
f{        e# Map over each number x in the range using n as an extra parameter:
 _2*S*a   e#  Push a string containing n*2 spaces, and wrap it in an array.
 @2$-     e#  Push n-x.
 *        e#  Repeat the space string from before n-x times.
 \        e#  Bring x back to the top.
 _,       e#  Copy it and get the range [0 .. x-1].
 f{       e#  Map over each number y in this range, using x as an extra parameter:
  )       e#   Increment y.
  '/*     e#   Repeat '/' y times.
  \Se[    e#   Pad the resulting string to length x by adding spaces to the left.
  _W%     e#   Copy the result and reverse it.
  '/'\er  e#   Replace '/' with '\' in that.
  +       e#   Concatenate to the other string. This forms one row of one diamond.
 }        e#  (end map, now we have the top half of a diamond of size x)
 _W%      e#  Copy the half-diamond and reverse it.
 Wf%      e#  Reverse each row.
 +        e#  Concatenate to the top half. Now we have a full diamond of size x.
 1$++     e#  Put the spaces from before at the beginning and end. This is to pad the top
          e#  and bottom of the smaller diamonds.
}         e# (end map)
z         e# Transpose.
N*        e# Join with newlines. Implicit output.

কৌতূহলের বাইরে, e#ব্যাখ্যাতে কেন ?
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং এটি একটি মন্তব্য, যাতে আপনি নিজেই ব্যাখ্যাটি চালাতে পারেন। সত্যই প্রয়োজনীয় নয় তবে ¯ \ _ (ツ) _ / ¯
ব্যবসায়িক বিড়াল

1
@carusocomputing #CJam একটি মন্তব্য নয় - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign - যদিও এটি অনেক অন্যান্য ভাষায় হয়। যেহেতু সিজাম একটি গল্ফিং ভাষা, সমস্ত এক-চরিত্রের কমান্ডগুলি গল্ফ-উপযুক্ত কার্যকারিতার জন্য ব্যবহৃত হয়। মন্তব্যগুলি কেবল অবারিত কোডের জন্য দরকারী, সুতরাং এটি একটি 2-বর্ণের ক্রম ব্যবহার করে, এভাবে অন্য কোনও কিছুর জন্য এক-চরিত্রের ক্রমটি মুক্ত করে দেয়
জো

3

পাইথন 2 , 152 147 143 140 বাইট

-1 বাইট সংগীতকারকে ধন্যবাদ 23

n=input()
r=range(n)
r+=r[::-1]
for x,i in enumerate(r):a,b='/\\\/'[i<x::2];s=' '*(n+~i);print''.join((s+a*n)[:n-j]+(b*-~i+s)[j:]for j in r)

এটি অনলাইন চেষ্টা করুন!

এটি বৃহত্তম হীরাটির অভ্যন্তরীণ কলামগুলি ছোট করে তুলতে, [0,..,n,n,..,0]কলামগুলির পরিমাণ মুছে ফেলার জন্য ব্যবহার করে কাজ করে ।


আপনি পরিবর্তন r=r+করতে একটি সস্তা বাইট পেতে পারেনr+=
musicman523

3

পাইথ, 35 32 বাইট

j.tsm+Jm.[yQS*"\/"k\ Sd_M_Js__BS

পরীক্ষা স্যুট

কীভাবে আমার এবং @ LeakyNun এর পদ্ধতির মধ্যে পার্থক্য হবে তা দেখতে পেরেছি।


3

ডায়ালগ এপিএল, 46

{⊃,/⍵∘{'/ \'[2+((-⍪⊖)⌽,-)(-⍺)↑∘.≥⍨⍳⍵]}¨(⌽,⊢)⍳⍵}

পিপিসিজিতে আপনাকে স্বাগতম এবং প্রথম প্রথম উত্তরের! এটি কীভাবে ডিএফএন হিসাবে রয়েছে তা দেখে আপনার উত্তরটিতে আমি যুক্ত করেছি {}কারণ সেগুলি অবশ্যই অন্তর্ভুক্ত করা উচিত।
ক্রিটসি লিথোস


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.