এই হীরা প্রিন্ট করুন


76

এই প্রশ্নটি আমার অফিসে ভাইরাসের মতো ছড়িয়ে পড়েছে। বিভিন্ন ধরণের পন্থা রয়েছে:

নিম্নলিখিত মুদ্রণ করুন:

        1
       121
      12321
     1234321
    123454321
   12345654321
  1234567654321
 123456787654321
12345678987654321
 123456787654321
  1234567654321
   12345654321
    123454321
     1234321
      12321
       121
        1

উত্তরগুলি কম অক্ষরগুলির চেয়ে ভাল হওয়ার সাথে অক্ষরে স্কোর হয়।


4
বিজয়ী মানদণ্ড কী? এবং এটি কি চ্যালেঞ্জ বা গল্ফ?
পল আর

21
আমি "কোলমোগোরভ-জটিলতা" "কোড-গল্ফ" হিসাবে পড়েছি।
ডেভিডসি

1
প্রশ্নটি জিজ্ঞাসা করার পরে @ ডেভিডকারারহর "কলমোগোরভ-জটিলতা" সম্পাদনা করা হয়েছে। মূল প্রশ্নকারী এখনও জয়ের মানদণ্ড নির্দিষ্ট করে নি।
গ্যারেথ

@ গ্যারেথ আমার মন্তব্যটি "কলমোগোরভ-জটিলতা" ট্যাগ যুক্ত হওয়ার পরে তৈরি হয়েছিল তবে "কোড-গল্ফ" ট্যাগ যুক্ত হওয়ার আগে। লোকেরা তখনও জিজ্ঞাসা করছিল এটি কোনও কোড-গল্ফের প্রশ্ন কিনা।
ডেভিডসি

3
perlmonks.com/?node_id=891559 এর পার্ল সমাধান রয়েছে।
বি_জোনাস

উত্তর:


24

জে, 29 26 24 23 22 21 অক্ষর

,.(0&<#":)"+9-+/~|i:8

কৌতুক জন্য FUZxxl ধন্যবাদ "+(আমি মনে করি না যে আমি u"vআগে কখনও ব্যবহার করেছি , হেই)।

ব্যাখ্যা

                  i:8  "steps" vector: _8 _7 _6 ... _1 0 1 ... 7 8
                 |     magnitude
              +/~      outer product using +
            9-         inverts the diamond so that 9 is in the center
  (      )"+           for each digit:
      #                  copy
   0&<                   if positive then 1 else 0
       ":                copies of the string representation of the digit
                         (in other words: filter out the strictly positive
                          digits, implicitly padding with spaces)
,.                     ravel each item of the result of the above
                       (necessary because the result after `#` turns each
                        scalar digit into a vector string)

পরিবর্তে "0], লিখুন "+
FUZxxl

একটি কম চরিত্রের জন্য, লিখুন,.0(<#":)"+9-+/~|i:8
FUZxxl

1
আপনার সমাধানটি ⍪↑{(0<⍵)/⍕⍵}¨9-∘.+⍨|9-⍳17
এপিএলের

25

এপিএল ( 33 31)

A⍪1↓⊖A←A,0 1↓⌽A←⌽↑⌽¨⍴∘(1↓⎕D)¨⍳9

যদি সংখ্যাগুলি পৃথক করে ফাঁকা করার অনুমতি দেওয়া হয় (ম্যাথমেটিকা ​​প্রবেশের মতো) তবে এটি সংক্ষিপ্ত করে ২৮ 26 করা যেতে পারে :

A⍪1↓⊖A←A,0 1↓⌽A←⌽↑⌽∘⍕∘⍳¨⍳9

ব্যাখ্যা:

  • (দীর্ঘ প্রোগ্রাম :)
  • ⍳9: 1 থেকে 9 সংখ্যাগুলির একটি তালিকা
  • 1↓⎕D: ⎕D'0123456789' স্ট্রিংটি 1↓প্রথম উপাদানটি সরিয়ে দেয়
  • ⍴∘(1↓⎕D)¨⍳9: প্রতিটি উপাদানের N এর জন্য ⍳9, প্রথম এন উপাদানগুলি থেকে নিন 1↓⎕D। এটি একটি তালিকা দেয়: ["1", "12", "123", ... "123456789"] স্ট্রিং হিসাবে
  • ⌽¨: এই তালিকার প্রতিটি উপাদান বিপরীত। ["1", "21", "321" ...]

  • (সংক্ষিপ্ত প্রোগ্রাম :)

  • ⍳¨⍳9: এন এর জন্য 1 থেকে N এর তালিকা [1.9]। এটি সংখ্যা হিসাবে [[1], [1,2], [1,2,3] ... [1,2,3,4,5,6,7,8,9]] তালিকা দেয়।
  • ⌽∘⍕∘: এই তালিকাগুলির প্রতিটিটির স্ট্রিং প্রতিনিধিত্বের বিপরীত। ["1", "2 1" ...]
  • (এখন থেকে একই :)
  • A←⌽↑: তালিকার তালিকা থেকে একটি ম্যাট্রিক্স তৈরি করে, ফাঁকা স্থানগুলির সাথে ডানদিকে প্যাডিং এবং তারপরে বিপরীত। এটি হীরার উপরের চতুর্ভুজ দেয়। এটি এ সংরক্ষণ করা হয়।
  • A←A,0 1↑⌽A: A, এ বিয়োগের বিপরীতে এটির প্রথম কলামটি ডানের সাথে সংযুক্ত। এটি আয়তক্ষেত্রের উপরের অর্ধেক দেয়। এটি আবার A এ সংরক্ষণ করা হয়।
  • A⍪1↓⊖A: ⊖Aএকটি উল্লম্বভাবে মিরর করা (নিম্ন অর্ধেক দেওয়া), নীচের অর্ধেকের 1↓উপরের সারিটি সরিয়ে দেয় এবং উপরের A⍪অংশের উপরের অংশটি 1↓⊖A

5
+1 আশ্চর্যজনক। আপনি কি এটি আমাদের জন্য এপিএল নিরক্ষর অনুবাদ করতে পারেন?
ডেভিডসি

3
কোড-পয়েন্টের পরিবর্তে অ-এসকি কোডটি ইউটিএফ -8 এ গণনা করা উচিত নয়? এটি এপিএলকে তাঁর পার্থিব আত্মীয়দের আরও কাছের দিকে ঠেলে দেবে।
জন ডিভোরাক

5
@ জনডভোরাক না, যেহেতু একটি এপিএল কোড পৃষ্ঠা রয়েছে , যা পুরো অক্ষরটিকে একক বাইটে সেট করে। তবে আমি মনে করি 2013 সালের পর থেকে আপনি সম্ভবত এটি আবিষ্কার করেছেন;)
মার্টিন এণ্ডার

23

ক্লোজার, 191 179 বাইট

#(loop[[r & s](range 18)h 1](print(apply str(repeat(if(< r 8)(- 8 r)(- r 8))\ )))(doseq[m(concat(range 1 h)(range h 0 -1))](print m))(println)(if s(recur s((if(< r 8)inc dec)h))))

বাইরের পরিবর্তন করে -12 বাইট doseqএকটি থেকে loop, যা আমার পরিত্রাণ পেতে করার অনুমতি দেওয়া atom(Yay)।

একটি ডাবল "ফর লুপ"। বাহ্যিক লুপ ( loop) প্রতিটি সারির উপরে চলে যায়, যখন অভ্যন্তরীণ লুপ ( doseq) সারিটির প্রতিটি সংখ্যার উপরে যায়, যা সীমাতে থাকে (concat (range 1 n) (range n 0 -1)), যেখানে nসারিটির সর্বাধিক সংখ্যা থাকে।

(defn diamond []
  (let [spaces #(apply str (repeat % " "))] ; Shortcut function that produces % many spaces
    (loop [[row-n & r-rows] (range 18) ; Deconstruct the row number from the range
           high-n 1] ; Keep track of the highest number that should appear in the row
      (let [top? (< row-n 8) ; Are we on the top of the diamond?
            f (if top? inc dec) ; Decided if we should increment or decrement
            n-spaces (if top? (- 8 row-n) (- row-n 8))] ; Calculate how many prefix-spaces to print
        (print (spaces n-spaces)) ; Print prefix-spaces
        (doseq [m (concat (range 1 high-n) (range high-n 0 -1))] ; Loop over the row of numbers
          (print m)) ; Print the number
        (println)

        (if r-rows
          (recur r-rows (f high-n)))))))

আমার প্রথম প্রয়াসে যুক্তিতে কোনও ত্রুটির কারণে (দুর্ঘটনাক্রমে প্রতিটি সংখ্যার মধ্যে উপসর্গ-স্থানগুলি সন্নিবেশ করে), আমি এটি পেতে পেরেছি:

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

সুস্পষ্ট বাগটি উপেক্ষা করেও সঠিক নয়, তবে এটি দুর্দান্ত দেখাচ্ছে।


20

গণিত 83.3 43 54 51

Print@@#&/@(Sum[k~DiamondMatrix~17,{k,0,8}]/.0->" ")

বিন্যাস উন্নত


3 বাইট সহ কেলি লোডারকে ধন্যবাদ রক্ষা করেছে।

বিশ্লেষণ

কোডটির মূল অংশটি Sum[DiamondMatrix[k, 17], {k, 0, 8}], ওল্ফ্রামআল্ফায় চেক করা যায় ।

নিম্নলিখিতটি একটি ছোট স্কেল এ পদ্ধতির অন্তর্নিহিত যুক্তি দেখায়।

a = 0~DiamondMatrix~5;
b = 1~DiamondMatrix~5;
c = 2~DiamondMatrix~5;
d = a + b + c;
e = d /. 0 -> "";
Grid /@ {a, b, c, d, e}

গ্রিডের


1
ডেভিড, তুমি এবার আমাকে মারছ! :-)
মিঃ উইজার্ড

1
আরেকটি চেষ্টা (55 টি চর):f = Table[# - Abs@k, {k, -8, 8}] &; f[f[9]] /. n_ /; n < 1 -> "" // Grid
ডেভিডসি

আরও একটি (71 টি অক্ষর):Table[9 - ManhattanDistance[{9, 10}, {j, k}], {j, 18}, {k, 18}] /. n_ /; n < 1 -> "" // Grid
ডেভিডসি

2
Grid@#@#@9&[Table[#-Abs@k,{k,-8,8}]&]/.n_/;n<1->""50 অক্ষর।
চ্যানোগ

ArrayPlot[Sum[k~DiamondMatrix~17, {k, 0, 8}], AspectRatio -> 2]
কোডটির

15

পাইথন 2, 72 69 67 61

চতুর না:

s=str(111111111**2)
for i in map(int,s):print'%8s'%s[:i-1]+s[-i:]

1
পাইথন 3+ এ কাজ করে না, যার জন্য মুদ্রণের জন্য আর্গুমেন্টগুলির চারপাশে প্যারেন্স দরকার :(
গ্রিফিন

7
@ গ্রিফিন: কোড গল্ফে আমি পাইথন 2 বা পাইথন 3 বেছে নিই তার উপর নির্ভর করে আমার কোনও ফাংশন হতে মুদ্রণের প্রয়োজন।
স্টিভেন রাম্বালস্কি

3
s=`0x2bdc546291f4b1`
gnibbler

1
@gnibbler। খুব চতুর পরামর্শ। দুর্ভাগ্যক্রমে, he হেক্সাডেসিমালের রিটারে একটি পেছন অন্তর্ভুক্ত রয়েছে 'L'
স্টিভেন রাম্বালস্কি

1
@gnibbler: পাইথনে এটি 64৪-বিট প্ল্যাটফর্মগুলিতে চলছে তবে 32-বিট প্ল্যাটফর্মগুলিতে নয়।
কনরাড বোরোস্কি

14

সি, 79 অক্ষর

v;main(i){for(;i<307;putchar(i++%18?v>8?32:57-v:10))v=abs(i%18-9)+abs(i/18-8);}

4
ব্যাখ্যা দয়া করে?
লুকাস হেনরিক 16

1
মোট লুকাশহেনরিক 307 টি অক্ষর। i% 18-9 হ'ল কার্টেসিয়ান প্লেনে y- অক্ষে নিজেকে মিরর করাতে মান। i / 18-8 হ'ল কার্টেসিয়ান প্লেনে x- অক্ষে নিজেকে মিরর করে y তাদের একসঙ্গে যোগফল 1 পেতে: 1 তির্যক (যা 1 গঠনের সাংখ্যিক শিফট ঘটায়।।। 1 হীরা (32:57) -v হওয়া ASCII 0-9 জন্য unichar সাংখ্যিক মান 10 নতুন লাইন
আলবার্ট Renshaw

14

পাইথন 2, 60 59

for n in`111111111**2`:print`int('1'*int(n))**2`.center(17)

আপত্তিজনক ব্যাকটিক্স এবং পুনরায় ফিরে আসে।


কী-ওয়ার্ডের inমতো আপনি কীওয়ার্ডের পরে স্থানটি সরিয়ে ফেলতে পারেন print
কনরাড বোরোস্কি

@ গ্লিচমির: ধন্যবাদ! আপডেট করা হয়েছে।
nneonneo

আমি Lআউটপুট মাঝের সাত লাইনের একটি অতিরিক্ত পেতে ।
স্টিভেন রাম্বালস্কি

আপনার করা উচিত নয় ... আপনি পাইথনের কোন সংস্করণ ব্যবহার করছেন?
nneonneo

12

গল্ফস্ক্রিপ্ট, 33 31 30 টি অক্ষর

আর একটি গল্ফস্ক্রিপ্ট সমাধান

17,{8-abs." "*10@-,1>.-1%1>n}%

আপনাকে ধন্যবাদ @PeterTaylor অন্য গৃহস্থালির কাজ জন্য।

প্রিভিওস সংস্করণ:

17,{8-abs" "*9,{)+}/9<.-1%1>+}%n*

( অনলাইন চালানো )

17,{8-abs" "*9,{)+}/9<.-1%1>n}%

1
আপনার পিছনের স্থানগুলির দরকার নেই (প্রশ্নের টেক্সটটিতে সেগুলি নেই), তাই আপনি স্পেসগুলিতে নম্বর যুক্ত করতে পারেন এবং একটি চর সংরক্ষণ করুন17,{8-abs." "*10@-,1>.-1%1>n}%
পিটার টেলর

12

গণিত 55 50 45 41 38

(10^{9-Abs@Range[-8,8]}-1)^2/81//Grid

Grid[(10^Array[{9}-Abs[#-9]&,17]-1)^2/81]

গণিত গ্রাফিক্স


1
খুব সুন্দর কাজ।
ডেভিডসি

@ ডেভিডকারারহর আপনাকে ধন্যবাদ: ডি
চ্যানোগ

আমি ডেভিডের মন্তব্য প্রতিধ্বনিত। আপনি কিভাবে এই নিয়ে এসেছেন?
মিঃ উইজার্ড

আমি কি লিখেছি আপনার উত্তরটি সংক্ষিপ্ত পরিবর্তনের সাথে আপডেট করতে পারি?
মিঃ উইজার্ড

@ মিঃ উইজার্ড অবশ্যই।
chyanog

10

জাভাস্ক্রিপ্ট, 114

কোডগলফে আমার প্রথম প্রবেশ!

for(l=n=1;l<18;n-=2*(++l>9)-1,console.log(s+z)){for(x=n,s="";x<9;x++)z=s+=" ";for(x=v=1;x<2*n;v-=2*(++x>n)-1)s+=v}

এটি আরও যদি সংক্ষিপ্ত করা যায় তবে কমেন্ট করুন :)


ধুর! ছাই!! আমি জায়গাটি মিস করেছি এবং অর্ধেকটা হীরা তৈরি করেছি। আমাকে এখনই ঘুমাতে হবে
জুমলার

9

পিএইচপি, 92 90 টি অক্ষর

<?for($a=-8;$a<9;$a++){for($b=-8;$b<9;){$c=abs($a)+abs($b++);echo$c>8?" ":9-$c;}echo"\n";}

কেন্দ্র থেকে অবস্থানের ম্যানহাটনের দূরত্ব গণনা করে এবং মুদ্রণ করে। কোনও স্থান 1 এর কম হলে মুদ্রণ করে।

একজন অনামী ব্যবহারকারী নিম্নলিখিত উন্নতির পরামর্শ দিয়েছেন (৮৪ টি অক্ষর):

<?for($a=-8;$a<9;$a++,print~õ)for($b=-8;$b<9;print$c>8?~ß:9-$c)$c=abs($a)+abs($b++);

দ্বিতীয় এক কাজ করে না।
খ্রিস্টান

আমি জানি এটি খুব দেরী হয়ে গেছে, কিন্তু যখনই পিএইচপি স্ক্রিপ্টগুলি দেখি তখন আমার সর্বদা গল্ফের প্রয়োজন হয়। 83 বাইট সঙ্গে <?প্রতি এড়ানো মেটা । এছাড়াও, আপনার দ্বিতীয় কোডটিতে কিছু এনকোডিং সমস্যা রয়েছে বলে মনে হচ্ছে।
রেডক্লুভার

@ সোয়াকু দ্বিতীয়টি আমার নয়। এটি কোনও অনামী ব্যবহারকারীর দ্বারা আমার উত্তরের সম্পাদনা হিসাবে প্রস্তাব করা হয়েছিল। আমি এটি যাচাই না করেই যুক্ত করেছি - ব্যবহারকারীরা কেন তাদের প্রচেষ্টা হিসাবে সত্যই এটি পোস্ট করেন নি তা নিশ্চিত নয়। মেটা প্রশ্ন পোস্টটি প্রায় 3 বছরের মধ্যে এই উত্তরটি তারিখ করে।
গ্যারেথ

আমি বোঝাতে <?চাইছিলাম , আমি বাইটাউন্টে অন্তর্ভুক্ত নেই। আমি কিছু অন্যান্য উন্নতি করেছি।
রেডক্লুভার

8

সাধারণ লিস্প, ১১৩ টি অক্ষর

(defun x(n)(if(= n 0)1(+(expt 10 n)(x(1- n)))))(dotimes(n 17)(format t"~17:@<~d~>~%"(expt(x(- 8(abs(- n 8))))2)))

প্রথমে আমি লক্ষ করেছি যে হীরকের উপাদানগুলি এরকম প্রকাশ করতে পারে:

  1   =   1 ^ 2
 121  =  11 ^ 2
12321 = 111 ^ 2

প্রভৃতি

xপুনরাবৃত্তভাবে বেস (1, 11, 111, ইত্যাদি) গণনা করে, যা স্কোয়ার হয় এবং তারপরে কেন্দ্র দ্বারা মুদ্রিত হয় format। সংখ্যাগুলি সর্বোচ্চ মেয়াদে যেতে এবং আবার নীচে নেওয়ার জন্য আমি (- 8 (abs (- n 8)))দ্বিতীয় লুপ এড়াতে ব্যবহৃত হত


8

কাঠকয়লা (অ-প্রতিযোগিতামূলক), 13 বাইট

প্রতিযোগিতা করা হচ্ছে না কারণ ভাষাটি প্রশ্নের চেয়ে নতুন (অনেক) নতুন।

F⁹«GX⁻⁹ιI⁺ι¹→

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

কিভাবে?

একে অপরের শীর্ষে নয়টি, ধারাবাহিকভাবে ছোট, ঘনসংখ্যক হীরা আঁকুন:

F⁹«   Loop ι from 0 to 8:
GX     Draw a (filled) polygon with four equilateral diagonal sides
⁻⁹ι      of length 9-ι
I⁺ι¹    using str(ι+1) as the character
→       Move right one space before drawing the next one

4
এটি এখন মেটাতে নতুন sens কমত্য অনুসারে প্রতিযোগিতা করা উচিত ।
অফিসিয়ালাইম

7

জাভাস্ক্রিপ্ট, 81

for(i=9;--i+9;console.log(s))for(j=9;j;s=j--^9?k>0?k+s+k:" "+s:k+"")k=i<0?j+i:j-i

6

পাওয়ারশেল (2 টি বিকল্প): 92 84 45 বাইট

1..8+9..1|%{' '*(9-$_)+[int64]($x='1'*$_)*$x}
1..9+8..1|%{' '*(9-$_)+[int64]($x='1'*$_)*$x}

1 o 2,11 ^ 2,111 ^ 2 ব্যবহার করার ইঙ্গিতটির জন্য স্ট্রোগয়েডসকে ধন্যবাদ ...


এর দ্বারা কিছু অক্ষর শেভ করেছেন:

  • নির্মূল করছে $w
  • $xএর প্রথম ব্যবহারের জায়গায় সংজ্ঞাটি স্থির করে ।
  • রিন্যান্টের সমাধান থেকে কিছু সংকেত নিয়েছেন :
    • এর +পরিবর্তে পূর্ণসংখ্যার অ্যারেগুলি সংযুক্ত করে ,যার সাহায্যে অ্যারেগুলির চারপাশে প্রথম বন্ধনী নির্মূল করতে এবং লুপগুলিতে বাসা বাঁধার একটি স্তর দেয়।
    • 9-$_আরও জটিল গণিত এবং অবজেক্ট পদ্ধতির পরিবর্তে প্রয়োজনীয় স্পেসগুলির দৈর্ঘ্য গণনা করতে ব্যবহৃত হয়। এটি প্রয়োজনীয়তাও দূর করে দেয় $y

ব্যাখ্যা:

1..8+9..1বা 1..9+8..11 থেকে 9 পর্যন্ত আরোহণের পরে পূর্ণসংখ্যার একটি অ্যারে তৈরি করে আবার 1 এ নেমে আসে।

|%{... অন্তর্নির্মিত উপনামের মাধ্যমে লুপের }মধ্যে পূর্ণসংখ্যার অ্যারের পাইপ দেয় ।ForEach-Object%

' '*(9-$_)+ 9 থেকে বর্তমান পূর্ণসংখ্যা বিয়োগ করে, তারপরে এই লাইনের আউটপুট শুরুর দিকে অনেকগুলি স্পেসের একটি স্ট্রিং তৈরি করে।

[int64]($x='1'*$_)*$xবর্তমান পূর্ণসংখ্যা যতক্ষণ না বড় ততক্ষণ $xস্ট্রিং হিসাবে সংজ্ঞায়িত করে 1। তারপরে এটি ইন্ট 64 এ রূপান্তরিত হয়েছে ( ই নোটেশনটি ব্যবহার না করে 111111111 2 সঠিকভাবে আউটপুট করা প্রয়োজন ) এবং স্কোয়ার।

এখানে চিত্র বর্ণনা লিখুন


1
আপনি তার longপরিবর্তে একটি কাস্ট করে একটি বাইট সংরক্ষণ করতে পারেনint64
ভেস্কাহ

বাইট সংরক্ষণের অন্য উপায়1..8+9..1|%{' '*(9-$_)+ +($x='1'*$_+'L')*$x}
মজজি

5

ভিম, 62 39 38 টি কীস্ট্রোক

এক টন বাইট সঞ্চয় করার জন্য @ ডিজেএমসিমেহেমকে ধন্যবাদ!

আমার প্রথম ভিম উত্তর, এত উত্তেজনাপূর্ণ!

i12345678987654321<ESC>qqYP9|xxI <ESC>YGpHq7@q

আমি একটি রেকর্ডিংয়ের মাধ্যমে নম্বরগুলি লেখার চেষ্টা করেছি, তবে এটি অনেক দীর্ঘ

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

ব্যাখ্যা:

i123 ... 321<ESC>                   Write this in insert mode and enter normal mode
qq                                  Start recording into register q
  YP                                Yank this entire line and Paste above
    9|                              Go to the 9th column
      xx                            Delete character under cursor twice
        I <ESC>                     Go to the beginning of the line and insert a space and enter normal mode
               Y                    Yank this entire line
                G                   Go to the last line
                 p                  Paste in the line below
                  H                 Go to the first line
                   q                End recording
                    7@q             Repeat this 7 times

সম্পাদনা করুন:

আমি এর Hপরিবর্তে ব্যবহার করেছি ggএবং 1 বাইট সংরক্ষণ করেছি


আপনি মুছে ফেলতে maএবং এতে পরিবর্তন `ai<space>করতে পারেন I<space>
ডিজেএমসিএমহেম

এছাড়াও, আপনি যদি পর্যায় 1 এর উপরে এবং নীচে আটকানোতে পরিবর্তন করেন তবে আপনি সম্ভবত পর্যায় 3 মুছতে পারেন ।
ডিজেএমসিএমহেম

@ ডিজেএমসিমেহেম এই পরামর্শের জন্য আপনাকে ধন্যবাদ! আমি প্রথম দিকে অনুলিপি করা বিটগুলির জন্য একটি নতুন রেজিস্টার চালু করার কথা ভাবছিলাম, তবে এটি আরও খাটো!
ক্রিটসি লিথোস

5

এপিএল (ডায়ালগ ক্লাসিক) , 20 19 বাইট

(⍉⊢⍪1↓⊖)⍣2⌽↑,⍨\1↓⎕d

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

⎕d অঙ্কগুলি '0123456789'

1↓প্রথম ড্রপ ( '0')

,⍨\ অদলবদল ক্যাটেনেট স্ক্যান, অর্থাৎ বিপরীত উপসর্গ '1' '21' '321' ... '987654321'

স্পেস সহ প্যাডেড একটি ম্যাট্রিক্সে মিশ্রিত করুন:

1
21
321
...
987654321

অনুভূমিকভাবে ম্যাট্রিক্স বিপরীত

(... )⍣2এটি দু'বার করুন:

⍉⊢⍪1↓⊖পক্ষান্তরণ ( ) ম্যাট্রিক্স নিজেই (এর ) উল্লম্বভাবে (ঘনিভূত ) উল্লম্বভাবে উল্টানো ম্যাট্রিক্স (সঙ্গে তার প্রথম সারি ছাড়া) ( 1↓)


4

আর, 71 টি অক্ষর

রেকর্ডগুলির জন্য:

s=c(1:9,8:1);for(i in s)cat(rep(" ",9-i),s[0:i],s[(i-1):0],"\n",sep="")

+1 টি - সঙ্গে কয়েক সঞ্চয় করতে পারেনmessage(rep(" ",9-i),s[c(1:i,i:1-1)])
flodel

@ ফ্লোডেল আপনাকে লক্ষ্য করতে হবে যে স্টাডারকে প্রিন্ট করে, এবং আপনি for(i in s<-c(1:9,8:1))...একটি বাইট সংরক্ষণ করতেও করতে পারেন
জিউসেপ্পে


4

কে ( 50৪ 50 চর)

-1'(::;1_|:)@\:((|!9)#'" "),'$i*i:"J"$(1+!9)#'"1";

পুরানো পদ্ধতি:

-1',/(::;1_|:)@\:((|!9)#\:" "),',/'+(::;1_'|:')@\:i#\:,/$i:1+!9;


(1+!9)#'"1"হল,\9#"1"
এনজিএন

4

সিজেম, 31 27 বাইট

সিজেএম এই চ্যালেঞ্জের চেয়ে অনেক নতুন, সুতরাং এই উত্তরটি গৃহীত হওয়ার যোগ্য নয়। যদিও এটি ছিল একটি পরিষ্কার সামান্য শনিবার সন্ধ্যায় চ্যালেঞ্জ। ;)

8S*9,:)+9*9/2%{_W%1>+z}2*N*

এটি এখানে পরীক্ষা করুন।

প্রথমে উপরের বাম চতুষ্কোণটি গঠনের ধারণা। এটি কীভাবে কাজ করে তা এখানে:

প্রথমে " 123456789"ব্যবহার করে স্ট্রিংটি তৈরি করুন 8S*9,:)+। এই স্ট্রিংটি 17 অক্ষর দীর্ঘ। এখন আমরা স্ট্রিংটি 9 বার পুনরাবৃত্তি করি এবং তারপরে এটি 9 দৈর্ঘ্যের সাবস্ট্রিংগুলিতে বিভক্ত করি 9/। 9 এবং 17 এর মধ্যে মেলে না এমন মিল প্রতিটি অন্যান্য সারিতে একটি অক্ষরে বামে অফসেট করবে। প্রতিটি স্ট্রিংয়ের নিজস্ব লাইনে মুদ্রণ করা আমরা পাই:

        1
23456789 
       12
3456789  
      123
456789   
     1234
56789    
    12345
6789     
   123456
789      
  1234567
89       
 12345678
9        
123456789

সুতরাং আমরা যদি কেবলমাত্র প্রতিটি অন্যান্য সারি বাদ দিই (যা স্বাচ্ছন্দ্য দিয়ে কাজ করে 2%), আমরা পছন্দসই একটি চতুর্ভুজটি পাই:

        1
       12
      123
     1234
    12345
   123456
  1234567
 12345678
123456789

দুটি মিররিংয়ের ক্রিয়াকলাপ বিভিন্ন অক্ষের সাথে চলেছে তা নিশ্চিত করার জন্য অবশেষে, আমরা এটি দু'বার আয়না করে গ্রিডটিকে মাঝখানে স্থানান্তর করি os মিররিং নিজেই ন্যায়

_      "Duplicate all rows.";
 W%    "Reverse their order.";
   1>  "Discard the first row (the centre row).";
     + "Add the other rows.";

শেষ অবধি, আমরা কেবল নতুন লাইনের সাথে সমস্ত লাইনে যোগদান করি N*


3

গল্ফস্ক্রিপ্ট, 36 টি অক্ষর

ধরে নেওয়া যে এটি চ্যালেঞ্জ হিসাবে বোঝানো হয়েছে, এখানে একটি প্রাথমিক গল্ফস্ক্রিপ্ট সমাধান রয়েছে:

9,.);\-1%+:a{a{1$+7-.0>\" "if}%\;n}%

3

রুবি, 76 টি অক্ষর

def f(a)a+a.reverse[1..-1]end;puts f [*1..9].map{|i|f([*1..i]*'').center 17}

উন্নতি স্বাগত জানায়। :)


1
69 টি f=->x{[*1..x]+[*1...x].reverse};puts f[9].map{|i|(f[i]*'').center 17}
চরিত্র

দুর্দান্ত মন্তব্য, আমি '...' জানতাম না এবং এটি কীভাবে কাজ করতে পারে তা বুঝতে পারি নি।
জিবি

60 টি চর:[*-8..8].map{|i|puts' '*i.abs+"#{eval [?1*(9-i.abs)]*2*?*}"}
জিবি

3

বেফুঞ্জ -93 , 155 অক্ষর

9:v:<,+55<v5*88<v-\9:$_68v
> v>     ^>3p2vpv  -1<!  *
, 1^  2p45*3+9<4:    ,:  +
g -^_75g94+4pg7^!    +^ ,<
1 : ^ `0    :-1$_:68*^$
^1_$:55+\-0\>:#$1-#$:_^

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

এটি অবশ্যই আরও গল্ফ করা যেতে পারে তবে এটি আমার প্রথম ফানজ প্রোগ্রাম এবং আমার মাথা ইতিমধ্যে ব্যথা করছে। যদিও অনেক মজা পেয়েছিল


3

জাভাস্ক্রিপ্ট, 170 বাইট

আমার প্রথম কোড গল্ফ :)

Golfed

a="";function b(c){a+=" ".repeat(10-c);for(i=1;i<c;i++)a+=i;for(i=2;i<c;i++)a+=c-i;a+="\n";}for(i=2;i<11;i++)b(i);for(i=9;i>1;i--)b(i);document.write("<pre>"+a+"</pre>");

Ungolfed

var str = "";
function row(line) {
    str += " ".repeat(10 - line);
    for (var i = 1; i < line; i++) {
        str += i;
    }
    for (var i = 2; i < line; i++) {
        str += line - i;
    }
    str += "\n";
}
for (var line = 2; line < 11; line++) {
    row(line);
}
for (var line = 9; line > 1; line--) {
    row(line);
}
document.write("<pre>" + str + "</pre>");

পিপিসিজিতে আপনাকে স্বাগতম!
Новиков

2

পার্ল 56 54 টি অক্ষর

-pস্যুইচের জন্য 1 টি যোগ করা হয়েছে ।

ক্রমটি তৈরি করতে স্কোয়ারড পুনরাবৃত্তিগুলি ব্যবহার করে।

s//12345678987654321/;s|(.)|$/.$"x(9-$1).(1x$1)**2|eg


2

পাইথন, 65

for i in map(int,str(int('1'*9)**2)):print' '*(9-i),int('1'*i)**2

I=int;আপনার কোডটি প্রিপেন্ডিং করার চেষ্টা করুন এবং এর intসাথে সম্পর্কিত সমস্ত উদাহরণগুলি প্রতিস্থাপনের চেষ্টা করুনI
সাইওস

@ কিয়েস আমি এটা ভেবেছিলাম এটি প্রতিবার 2 টি চর intব্যবহার করা হয় এবং এটি 3 বার ব্যবহৃত হয়, সুতরাং এটি 6 টি অক্ষর ব্যয় করে 6 টি অক্ষর সংরক্ষণ করে।
পিচবোর্ড_বক্স

2

গ্রোভি 77 75

i=(-8..9);i.each{a->i.each{c=a.abs()+it.abs();print c>8?' ':9-c};println""}

পুরাতন রুপ:

(-8..9).each{a->(-8..9).each{c=a.abs()+it.abs();print c>8?' ':9-c};println""}

একটি 57 চর গ্রোভি সমাধান যুক্ত করা হয়েছে। আপনি প্রতিস্থাপন করতে পারেন উভয় eachসঙ্গে anyদুই অক্ষর সংরক্ষণ করুন।
মাতিয়াস বজরল্যান্ড


2

জাভাস্ক্রিপ্ট, 137

পুনরাবৃত্তি সহ:

function p(l,n,s){for(i=l;i;s+=" ",i--);for(i=1;i<=n;s+=i++);for(i-=2;i>0;s+=i--);return(s+="\n")+(l?p(l-1,n+1,"")+s:"")}alert(p(8,1,""))

সিজি তে প্রথমবারের মতো :)

বা 118

যদি আমি এমন কোনও জেএস বাস্তবায়ন পাই 111111111**2যা উচ্চতর নির্ভুলতার সাথে কার্যকর করে ।
(এখানে: 12345678987654320)।

a="1",o="\n";for(i=0;i<9;i++,o+="         ".substr(i)+a*a+"\n",a+="1");for(i=8;i;i--)o+=o.split("\n")[i]+"\n";alert(o)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.