সজ্জিত অঙ্কের সিঁড়ি


17

নীচে বর্ণিত ধরণের ধনাত্মক পূর্ণসংখ্যার এবং এইচ আউটপুট ডাব্লু কলাম এবং পাঠ্যের এইচ সারি দেওয়া হয়েছে।Whw

প্রথম সারিটি 11 0টি দিয়ে শুরু হয় , দ্বিতীয় সারিটি 10 1টি দিয়ে, তৃতীয়টি নয়টি দিয়ে 2এবং তাই দশম সারিতে নীচে দুটি 9এস দিয়ে শুরু হবে। এই প্রথম দশটি সারিটির প্রত্যেকটিতে পরপর সংখ্যার প্রাথমিক রান অনুসরণ করে, পরের সর্বনিম্ন অঙ্কটি দ্বিতীয় পরের সর্বনিম্ন অঙ্কটি দু'বার প্রদর্শিত হওয়ার আগে দু'বার প্রদর্শিত হয়, এই প্যাটার্নটি চিরতরে পুনরাবৃত্তি করে। যদি এর কোনও রান 0ঘটে তবে এর পরে অঙ্কগুলি সর্বদা 9গুলি হয়।

দশম সারির নীচে থাকা সারিগুলি এর উপরে সারিগুলির সমান তবে এক এক করে ডানে স্থানান্তরিত। নতুন অঙ্কটি প্রদর্শিত হয় যা পূর্বের বামতম অঙ্কের মতো হয় যদি এটি নিজের অন্য কোনও উদাহরণের পাশে না থাকে। অন্যথায় এটি পরবর্তী সর্বোচ্চ অঙ্ক (9 টি থেকে পিছনে 0 থেকে সাইকেল চালানো)।

প্রথম উপাদানগুলি নিম্নরূপ:11×10

00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554

প্যাটার্নটি আরও পরিষ্কার করার জন্য এখানে রঙিন পাঠ্য সহ একটি চিত্র রয়েছে।

স্থির পাঠ্য

আপনার যদি কম কলাম / সারি তৈরি করতে হয় তবে আপনার কেবল উপরের পাঠ্যটি ক্রপ করা উচিত।

যদি এর চেয়ে বেশি কলাম / সারি তৈরি করতে হয় তবে বিদ্যমান সিঁড়িগুলি প্রসারিত করা উচিত। যদি আরও কলাম / সারি ক্রমাগত অঙ্কগুলির নতুন সিঁড়ি যুক্ত করে, সংখ্যাগুলি চক্রাকারে পূর্ণসংখ্য থেকে বেছে নেওয়া উচিত। সুতরাং ইনপুট জন্য আউটপুট হওয়া উচিত(15,13)

000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544

রঙ সহ এই পাঠ্যের একটি চিত্র এখানে দেওয়া হয়েছে:

বর্ধিত পাঠ্য

বিধি

  • আউটপুট যে কোনও সুবিধাজনক পদ্ধতি দ্বারা দেওয়া যেতে পারে ।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরিয়ে দিতে পারেন।
  • আপনি যদি চান তবে লাইনের একটি তালিকা ফিরিয়ে দিতে পারেন।
  • আপনি যদি চান তবে আপনি 2D অঙ্কের অ্যারে বা সংখ্যাগুলির তালিকার তালিকাটি ফিরিয়ে দিতে পারেন।
  • স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।

সংক্ষিপ্ততম কোড জিতেছে।

পরীক্ষার মামলা

(w,)

1,1
0

3,2 000 111

20,1 00000000000998877665

11,10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554

15,13 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 555555443322110 666665544332211 777766554433221 888776655443322 998877665544332 099887766554433 009988776655443 100998877665544


8
আমি সত্যিই প্যাটার্নটি বুঝতে পারি না। উদাহরণগুলি থেকে বহির্মুখী হওয়ার প্রত্যাশার চেয়ে আপনি কী নিদর্শনটি কংক্রিটলি ব্যাখ্যা করতে পারেন? কিছু লোক উদাহরণগুলি সহায়ক মনে করে তবে উদাহরণগুলি থেকে প্যাটার্নটি ঠিক কীভাবে অনুসরণ করে তা আমি সত্যিই দেখতে পাই না।
পোস্ট রক গার্ফ হান্টার

@WW ধন্যবাদ, আমি উপরের একটি বিট আরো পুঙ্খানুপুঙ্খ ব্যাখ্যা যোগ
dylnan

1
মজার বিষয় হচ্ছে এখন আমাদের কাছে টেক্স রয়েছে আপনি প্রকৃতপক্ষে পাঠ্যে রঙিন গ্রিড তৈরি করতে পারেন। টেস্ট:1234
qwr

@ কিউআর ওহ সুন্দর, আমরা জানতাম না যে আমরা এটি করতে পারি। আপনি কোন আদেশ দিয়ে এটি করেছেন?
dylnan

\ রঙ {লাল} {পাঠ্য} আমি বিশ্বাস করি
qwr

উত্তর:


7

পাইথন 3, 94 93 78 77 74 বাইট

lambda x,y:[[[(j-i+10)//2%10,j][j+i<9]for i in range(x)]for j in range(y)]

ডাইলান থেকে -1 বাইট

Xnor থেকে মুদ্রণের পরিবর্তে তালিকার একটি তালিকা ফিরিয়ে -15 বাইট

এর অংশ (j-i+10)//2%10এবং jঅংশগুলির ক্রম স্যুইচ করে -1 বাইট if-else

-3 bytes from Jo King by changing the if-else to a list.

Try it online!


Using a lambda function saves a byte: TIO
dylnan

@dylnan Thanks!
pizzapants184

1
The challenge allows outputting lists of lists of digits, so it looks like you don't need to do any printing or joining.
xnor


2

Canvas, 14 bytes

[⁷{¹∔⁶+»¹m◂@]]

Try it here!

While making this I noticed in several places I had negative modulos in Canvas (here, it meant that » - floor div 2 - rounded towards 0). The previous 18 byte answer that worked without fixes doesn't work anymore (because I only save main.js between versions) but TIO still has the old version

Explanation:

[            ]  for 1..input
 ⁷{         ]     for 1..2nd input
   ¹∔               subtract from this loop counter the outer loops one
     ⁶+             add 12
       »            divide by 2, rounded to -∞
        ¹m          minimum of that & the outer loops counter
          ◂@        in the string "0123456789", get the xth char, 1-indexed

2

Charcoal, 20 17 bytes

Eη⭆θ﹪⌊⟦ι÷⁺⁻ιλχ²⟧χ

Try it online! Link is to verbose version of code. Explanation:

 η                  Height
E                   Map over implicit range
   θ                Width
  ⭆                 Map over implicit range and join
          ⁻ιλ       Subtract column from row
         ⁺   χ      Add 10
        ÷     ²     Integer divide by 2
       ι            Current row
     ⌊⟦        ⟧    Take the minimum
    ﹪           χ   Modulo by 10
                    Implicitly print each row on its own line

Edit: Saved 3 bytes by switching to @dzaima's algorithm.


2

Jelly, 14 bytes

_@þ:2+6«"J$’%⁵

A dyadic link taking w on the left and h on the right which yields a list of lists of digits.

Try it online! Or see a (post-formatted) test-suite.

How?

_@þ:2+6«"J$’%⁵ - Link: integer w, integer h
  þ            - outer product using (i.e. [[f(i,j) for i in 1..w] for j in 1..h]):
_@             -   subtraction with swapped arguments (i.e. f(i,j): j-i)
               -   e.g. the 4th row is [3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,...]
   :2          - integer divide by two (vectorises)
               -                       [1, 1, 0, 0,-1,-1,-2,-2,-3,-3,-4,-4,-5,-5,-6,...]
     +6        - add six (vectorises)
               -                       [7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0,...]
          $    - last two links as a monad:
         J     -   range of length -> [1,2,3,...,h]
        "      -   zip with:
       «       -     minimum (vectorises)
               -                       [4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0,...]
           ’   - decrement (vectorises)
               -                       [3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0,-1,...]
             ⁵ - literal ten
            %  - modulo (vectorises)
               -                       [3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 9,...]


2

Jelly, 19 bytes

Uses a very similar approach to pizzapants' and Neil's. Saved 1 byte thanks to Jonathan Allan.

p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵

Try it online!


The helper link

_/HḞ+5

This is a monadic link (the Jelly equivalent of a single argument function), that can be invoked from the next link using the quick Ç. It takes a list of two integers and does the following on it:

_/

Reduce by subtraction.

HḞ+5%⁵

Floor its halve to an integer and add 5, then take it modulo 10.

The main link

p’ḢÇS<9Ɗ?€s

This is a dyadic link (the Jelly equivalent of a two-argument function), that can be invoked from the next link using the ç quick. It takes two integers x and y and performs the following:

p’

Cartesian product of their ranges, and then subtract 1 from each integer in that list. It is equivalent to ([0,x)Z)×([0,y)Z).

S<9Ɗ?€

And for each of the pair in the Cartesian product, if their sum is less than 9, then:

Retrieve the head of the pair (first element). Otherwise,

Ç

Call the helper link (explained above) on the pair.

s%⁵

Finally, split the resulting list into chunks of length y and take each mod 10.


You can move the mod 10 to the end and then in-line the helper to save a byte -- either as a dyad with p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵ or p’Ḣ_/:2+ʋS<9Ɗ?€5s%⁵, or as a monad with p’Ḣ_/:2+5ƲS<9Ɗ?€s%⁵
Jonathan Allan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.