নূন্যতম প্যাডিং সহ সাইন পরিবর্তন, লুপ এবং প্রদর্শন display


17

ইনপুট:

দুটি পূর্ণসংখ্যা: একটি নেতিবাচক, একটি ধনাত্মক।

আউটপুট:

প্রথম লাইনের আউটপুট সর্বনিম্ন থেকে সর্বোচ্চ। দ্বিতীয় লাইনে আমরা সর্বাধিক এবং সর্বনিম্ন সংখ্যাগুলি সরিয়ে দিয়েছি এবং সমস্ত স্বতন্ত্র সংখ্যা সাইন-পরিবর্তন করেছি । তৃতীয় লাইনে আমরা আবারো সর্বোচ্চ এবং সর্বনিম্ন সংখ্যাগুলি সরিয়ে দিয়েছি এবং সমস্ত স্বতন্ত্র সংখ্যাগুলিতে আবার সাইন-পরিবর্তন করেছি। ইত্যাদি (নীচের উদাহরণে চ্যালেঞ্জকে আরও পরিষ্কার করা উচিত))

গুরুত্বপূর্ণ: এছাড়াও, আমরা স্পেসগুলি যুক্ত করি যাতে একটি কলামে সংখ্যাগুলি সমস্ত প্রান্তযুক্ত হয় (ডানদিকে)।
ন্যূনতম প্রান্তিককরণ হ'ল এই চ্যালেঞ্জের প্রধান অংশ, এর অর্থ হ'ল আপনি প্রতিটি সংখ্যাকে একই প্রস্থে তৈরি করতে পারবেন না। কোনও কলামের প্রস্থটি সেই নির্দিষ্ট কলামের বৃহত্তম সংখ্যা-প্রস্থের উপর ভিত্তি করে (এবং সাইন-চেঞ্জের সাথে ক্রম সংখ্যাটি প্রতি কলামে প্রস্থকে কিছু বিচিত্র দেয়)।


উদাহরণ স্বরূপ:

Input: -3,6

Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6   // sequence from lowest to highest
 2, 1, 0,-1,-2,-3,-4,-5       // -3 and 6 removed; then all signs changed
-1, 0, 1, 2, 3, 4             // 2 and -5 removed; then all signs changed again
 0,-1,-2,-3                   // -1 and 4 removed; then all signs changed again
 1, 2                         // 0 and -3 removed; then all signs changed again
                              // only two numbers left, so we're done

আপনি উপরে দেখতে পারেন যে স্থানগুলি ইতিবাচক সংখ্যাগুলিতে যুক্ত করা হয়, যখন তারা ক্ষতিপূরণ দেওয়ার জন্য negativeণাত্মক সংখ্যার সাথে একটি কলাম ভাগ করে - (একই ক্ষেত্রে 2-সংখ্যার সংখ্যার ক্ষেত্রেও প্রযোজ্য হবে)।

চ্যালেঞ্জ বিধি:

  • ইনপুট অবশ্যই দুটি পূর্ণসংখ্যা হতে হবে
    • আপনি ধরে নিতে পারেন যে এই পূর্ণসংখ্যাগুলি -99- 99(সমেত) ব্যাপ্তিতে রয়েছে।
    • প্রথম পূর্ণসংখ্যাটি নেতিবাচক হবে এবং অন্যটি ইতিবাচক হবে।
  • আউটপুট যে কোনও যুক্তিসঙ্গত বিন্যাসে থাকতে পারে, যতক্ষণ না এটি স্পষ্ট হয় সারি এবং ডানদিকে প্রান্তিককরণ কলাম রয়েছে: অর্থাত্ স্টাডউট; নতুন লাইনের সাথে স্ট্রিং হিসাবে ফিরে; স্ট্রিংগুলির তালিকা হিসাবে ফিরে আসা; ইত্যাদি।
  • আউটপুটটিতে অবশ্যই আপনার নিজের পছন্দসই একটি ডিলিমিটার থাকতে হবে (স্পেস, ট্যাব, নতুন লাইন, অঙ্কগুলি বা বাদে -): অর্থাৎ ,; এবং ;এবং |; এবং X; ইত্যাদি সমস্ত গ্রহণযোগ্য ডিলিমিটার।
  • আউটপুট লাইনে কোনও নেতৃস্থানীয় বা পিছনে ডিলিমিটার না থাকতে পারে।
  • আউটপুটটিতে একের পরের নতুন লাইন থাকতে পারে এবং যে কোনও লাইনে অনেকগুলি ট্রেলিং স্পেস থাকতে পারে।

সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতিগুলি, সম্পূর্ণ প্রোগ্রামগুলির সাথে STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজন হলে একটি ব্যাখ্যা যোগ করুন।

পরীক্ষার কেস:

Input: -3,6

Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6
 2, 1, 0,-1,-2,-3,-4,-5
-1, 0, 1, 2, 3, 4
 0,-1,-2,-3
 1, 2

Input: -1,1

Output:
-1,0,1
 0

Input: -2,8

Output:
-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
 1, 0,-1,-2,-3,-4,-5,-6,-7
 0, 1, 2, 3, 4, 5, 6
-1,-2,-3,-4,-5
 2, 3, 4
-3

Input: -15,8

Output: 
-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
 14, 13, 12, 11, 10,  9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
-13,-12,-11,-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
 12, 11, 10,  9,  8,  7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5
-11,-10, -9, -8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4
 10,  9,  8,  7,  6,  5, 4, 3, 2, 1, 0,-1,-2,-3
 -9, -8, -7, -6, -5, -4,-3,-2,-1, 0, 1, 2
  8,  7,  6,  5,  4,  3, 2, 1, 0,-1
 -7, -6, -5, -4, -3, -2,-1, 0
  6,  5,  4,  3,  2,  1
 -5, -4, -3, -2
  4,  3

Input: -3,15

Output:
-3,-2,-1, 0, 1, 2, 3, 4,  5, 6,  7,  8,  9, 10, 11, 12, 13,14,15
 2, 1, 0,-1,-2,-3,-4,-5, -6,-7, -8, -9,-10,-11,-12,-13,-14
-1, 0, 1, 2, 3, 4, 5, 6,  7, 8,  9, 10, 11, 12, 13
 0,-1,-2,-3,-4,-5,-6,-7, -8,-9,-10,-11,-12
 1, 2, 3, 4, 5, 6, 7, 8,  9,10, 11
-2,-3,-4,-5,-6,-7,-8,-9,-10
 3, 4, 5, 6, 7, 8, 9
-4,-5,-6,-7,-8
 5, 6, 7
-6

Input: -12,12

Output:
-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8,  9, 10,11,12
 11, 10,  9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11
-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10
  9,  8,  7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9
 -8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8
  7,  6,  5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
 -6, -5, -4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
  5,  4,  3, 2, 1, 0,-1,-2,-3,-4,-5
 -4, -3, -2,-1, 0, 1, 2, 3, 4
  3,  2,  1, 0,-1,-2,-3
 -2, -1,  0, 1, 2
  1,  0, -1
  0

1
"-100-100 এর বাইরে কখনও" এর মধ্যে কখনই -100 বা 100 নাও অন্তর্ভুক্ত থাকে?
জোনাথন অ্যালান

@ জোনাথান অ্যালান এটি -100 এবং 100 বাদ দিয়ে অর্থবোধ করে, কারণ যদি সেগুলি অন্তর্ভুক্ত করা হয় তবে একটি
তৃতীয়াংশ

সম্পর্কিত। (আরেকটি চ্যালেঞ্জ যেখানে গ্রিডকে প্যাডিং এবং ডান-সারিবদ্ধকরণই মূল উপাদান))
মার্টিন ইন্ডার

1
@ জোনাথান অ্যালান আমি শব্দটি কিছুটা পরিবর্তন করেছি। আপনি ক্ষুদ্রতম সম্ভাব্য নেতিবাচক ইনপুট -99এবং বৃহত্তম সম্ভাব্য ইতিবাচক ইনপুটটি ধরে নিতে পারেন 99
কেভিন ক্রুইজসেন

1
প্রস্তাবিত পরীক্ষার কেস: -3,15। কিছু উত্তর সঠিকভাবে কাজ করে না।
betseg

উত্তর:


7

জেলি , 25 24 20 বাইট

rµḊṖNµÐĿZbȷG€Ỵ€Zj€”,

এটি একটি ডায়াডিক লিঙ্ক যা সারিগুলির একটি অ্যারে দেয়।

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

কিভাবে এটা কাজ করে

rµḊṖNµÐĿZbȷG€Ỵ€Zj€”,  Dyadic link. Arguments: a, b

r                      Range; yield [a, ..., b].
 µ   µÐĿ               Apply the enclosed chain until the results are no longer
                       unique. Return the array of results.
  Ḋ                      Dequeue; remove the first item.
   Ṗ                     Pop; remove the last item.
    N                    Negate; multiply all remaining integers by -1.
       Z               Zip; transpose rows and columns.
        bȷ             Base 1000; map each n to [n].
          G€           Grid each; in each row, pad all integers to the same length,
                       separating the (singleton) rows by linefeeds.
            Ỵ€         Split each result at linefeeds.
              Z        Zip to restore the original layout.
               j€”,    Join each row, separating by commata.

7

05AB1E , 59 বাইট

আমি আবার কয়েক মাস আগে একটি ঠিক লিখেছিলাম একই বাগ দ্বারা বিভ্রান্ত করছি কিন্তু কখনও ধাক্কা না ...
যদিও গল্ফিং এখনও সম্ভব হওয়া উচিত।

Ÿ[Ðg1‹#ˆ¦(¨]\\¯vy€g}})J.Bvyð0:S})øvyZs\})U¯vyvyXNèyg-ú}',ý,

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


আমি এর সাথে খুব কাছাকাছি ŸÐ',ý,gÍ;µ¦¨(D',ý,¼
পৌঁছেছি:,

1
@ অক্স: হ্যাঁ ফর্ম্যাট করা অবশ্যই এখানে শক্ত অংশ। এর মতো কিছু Ÿ[Ðg1‹#',ý,¦(¨অন্যথায় যথেষ্ট হবে :)
এমিগিনা

1
-3,15 এর মতো ইনপুটগুলির জন্য সঠিকভাবে কাজ করে না।
betseg

@ বিটসেগ: রিগট আপনি আছেন। পুরানো সংস্করণে ফিরে গেছে।
এমিগানা

7

জাভা 8, 483 480 486 467 বাইট

(a,b)->{int f=0,l=b-a+3,z[][]=new int[l][l],y[]=new int[l],i,j,k=0;for(;b-a>=0;k++,a++,b--,f^=1)for(j=0,i=a;i<=b;i++)z[k][j++]=f<1?i:-i;String r="",s;for(i=0;i<l;y[i++]=k)for(j=0,k=1;j<l;k=f>k?f:k)f=(r+z[j++][i]).length();for(i=0;i<l;i++){k=z[i][0];if(i>0&&k==z[i][1]&k==z[i-1][2])break;for(j=0;j<l;){k=z[i][j];s="";for(f=(s+k).length();f++<y[j];s+=" ");f=z[i][++j];if(k==f){r+=(i>0&&z[i-1][1]==z[i][1]?s+0:"")+"\n";j=l;}else r+=s+k+(f==z[i][j+1]?"":",");}}return r;}

Bu বাগ-ফিক্সের কারণে বাইটগুলি বাড়ানো হয়েছে ..

ঠিক আছে, এটি আমার ( ভীষণ জাভাতে ..) ভাবার চেয়ে অনেক বেশি সময় নিয়েছে (এবং বাইটস)। এটি অবশ্যই আরও কিছুটা গল্ফ করা যেতে পারে, সম্ভবত NxN গ্রিড-অ্যারে তৈরির পরিবর্তে সম্পূর্ণ আলাদা পদ্ধতির ব্যবহার করে জিরোগুলি 'স্ট্রিপ আউট' করে দেওয়ার (পরীক্ষার ক্ষেত্রে বিরক্তিকর প্রান্তের কেস সহ -1,1, পাশাপাশি)-12,12 ) ।

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

ব্যাখ্যা:

(a,b)->{        // Method with two integer parameters and String return-type
  int f=0,      //  Flag-integer, starting at 0
      l=b-a+3,  //  Size of the NxN matrix,
                //  plus two additional zeros (so we won't go OutOfBounds)
      z[][]=new int[l][l],
                //  Integer-matrix (default filled with zeros)
      y[] = new int[l],
                //  Temp integer-array to store the largest length per column
      i,j,k=0;  //  Index-integers
  for(;b-a>=0   //  Loop as long as `b-a` is not negative yet
      ;         //    After every iteration:
       k++,     //     Increase `k` by 1
       a++,     //     Increase `a` by 1
       b--,     //     Decrease `b` by 1
       f^=1)    //     Toggle the flag-integer `f` (0→1 or 1→0)
    for(j=0,i=a;i<=b;i++)
                //   Inner loop `i` in the range [`a`, `b`]
      z[k][j++]=//    Set all the values in the matrix to:
        f<1?    //     If the flag is 0:
         i      //      Simply use `i`
        :       //     Else (flag is 1):
         -i;    //      Use the negative form of `i` instead
  String r="",  //  The return-String
         s;     //  Temp-String used for the spaces
  for(i=0;i<l;  //  Loop `i` over the rows of the matrix
      ;y[i++]=k)//    After every iteration: Set the max column-width
    for(j=0,k=1;j<l;
                //   Inner loop `j` over the cells of each row
        k=f>k?f:k)
                //     After every iteration: Set `k` to the highest of `k` and `f`
      f=(r+z[j++][i]).length();
                //    Determine current number's width
                //    (NOTE: `f` is no longer the flag, so we re-use it as temp value)
  for(i=0;i<l;i++){
                //  Loop `i` over the rows of the matrix again
    k=z[i][0];  //   Set `k` to the first number of this row
    if(i>0      //   If this isn't the first row
       &&k==z[i][1]&k==z[i-1][2])
                //   and the first number of this row, second number of this row,
                //   AND third number of the previous row all equal (all three are 0)
      break;    //    Stop loop `i`
    for(j=0;j<l;){
                //   Inner loop `j` over the cells of each row
      k=z[i][j];//    Set `k` to the number of the current cell
      s="";     //    Make String `s` empty again
      for(f=(s+k).length();f++<y[j];s+=" ");
                //    Append the correct amount of spaces to `s`,
                //    based on the maximum width of this column, and the current number
      f=z[i][++j];
                //    Go to the next cell, and set `f` to it's value
      if(k==f){ //    If the current number `k` equals the next number `f` (both are 0)
        r+=     //     Append result-String `r` with:
          (i>0  //      If this isn't the first row
           &&z[i-1][1]==z[i][1]?
                //      and the second number of this and the previous rows 
                //      are the same (both are 0):
            s+0 //       Append the appropriate amount of spaces and a '0'
           :    //      Else:
            "") //       Leave `r` the same
          +"\n";//     And append a new-line
         j=l;}  //     And then stop the inner loop `j`
      else      //    Else:
       r+=s     //     Append result-String `r` with the appropriate amount of spaces
          +k    //     and the number 
          +(f==z[i][j+1]?"":",");}}
                //     and a comma if it's not the last number of the row
  return r;}    //  Return the result `r`

6

জাভাস্ক্রিপ্ট (ES6), 269 বাইট

(a,b,d=~a+b+2,o=Array(~~(d/2)+1).fill([...Array(d)].map(_=>a++)).map((e,i)=>e.slice(i,-i||a.a)).map((e,i)=>i%2==0?e:e.map(e=>e*-1)))=>o.map(e=>e.map((e,i)=>' '.repeat(Math.max(...[...o.map(e=>e[i]).filter(e=>e!=a.a)].map(e=>[...e+''].length))-`${e}`.length)+e)).join`
`

ব্যাখ্যা:

(                                     // begin arrow function

  a,b,                                // input

  d=~a+b+2,                           // distance from a to b

  o=Array(~~(d/2)+1)                  // create an outer array of
                                      // (distance divided by 2 
                                      // floored + 1) length

    .fill(                            // fill each outer element
                                      // with the following:

      [...Array(d)]                   // create inner array of the 
                                      // distance length and 
                                      // fill with undefined

        .map(_=>a++)                  // map each inner element 
                                      // iterating from a to b
    ) 
    .map(                             // map outer array

      (e,i)=>e.slice(i,-i||a.a)       // remove n elements from each end 
                                      // of the inner array corresponding 
                                      // to the outer index with a special 
                                      // case of changing 0 to undefined
    )
    .map(                             // map outer array

      (e,i)=>i%2==0?e:e.map(e=>e*-1)  // sign change the inner elements
                                      // in every other outer element
    )
)=>                                   // arrow function return

  o                                   // outer array

    .map(                             // map outer array

      e=>e.map(                       // map each inner array

        (e,i)=>' '.repeat(            // repeat space character the
                                      // following amount:

          Math.max(...                // spread the following array to
                                      // max arguments:

            [...                      // spread the following to an
                                      // array:

              o                       // outer array

                .map(e=>e[i])         // map returning each element of
                                      // the same inner index from the
                                      // outer array

                .filter(e=>e!=a.a)    // remove undefined elements
            ]
            .map(e=>[...e+''].length) // map each element to the  
                                      // length of the string

          )                           // returns the max string 
                                      // length of each column

          -`${e}`.length              // subtract the current 
                                      // element's string length 
                                      // from the max string length

      )                               // returns the appropriate amount
                                      // of padding

      +e                              // add the element to the padding
    )
  ).join`
`                                     // join each element of outer
                                      // array as string with newline

const f = (a,b,d=~a+b+2,o=Array(~~(d/2)+1).fill([...Array(d)].map(_=>a++)).map((e,i)=>e.slice(i,-i||a.a)).map((e,i)=>i%2==0?e:e.map(e=>e*-1)))=>o.map(e=>e.map((e,i)=>' '.repeat(Math.max(...[...o.map(e=>e[i]).filter(e=>e!=a.a)].map(e=>[...e+''].length))-`${e}`.length)+e)).join`
`
console.log('Test Case: -1,1')
console.log(f(-1,1))
console.log('Test Case: -3,6')
console.log(f(-3,6))
console.log('Test Case: -2,8')
console.log(f(-2,8))
console.log('Test Case: -15,8')
console.log(f(-15,8))
console.log('Test Case: -3,15')
console.log(f(-3,15))
console.log('Test Case: -12,12')
console.log(f(-12,12))


আপনি নতুন পরীক্ষার কেস যুক্ত করতে পারেন?
betseg

4

কিউবিআইসি , 46 বাইট

::[0,-1*a+b,2|[a,b|?d*q';`]q=q*-1┘a=a+1┘b=b-1?

কিভাবে এটা কাজ করে:

::           Read the negative and positive ints as a and b
[0,-1*a+b,2| FOR(c = 0; c < range(a, b); c+=2) {} This creates the proper amount of lines.
  [a,b|      For each line, loop from lower to upper
    ?d*q     Print the current point in the range, accounting for the sign-switch
     ';`     And suppress newlines. The ' and ` stops interpreting special QBIC commands.
  ]          NEXT line
  q=q*-1┘    Between the lines, flip the sign-flipper
  a=a+1┘     Increase the lower bound
  b=b-1?     Decrease the upper bound, print a newline
             The outermost FOR loop is auto-closed at EOF.

ভাগ্যক্রমে, একটি সংখ্যা মুদ্রণের সময়, কিউব্যাসিক প্রয়োজনীয় প্যাডিংটি স্বয়ংক্রিয়ভাবে যুক্ত করে।


কাজটি করার জন্য সঠিক ভাষা খুঁজে পাওয়ার আরেকটি কেস :) +1
এলপেড্রো

+1 কিউবিআইসির জন্য কোনও অনলাইন সংকলক উপলব্ধ? আমি এটি পরীক্ষার সমস্ত ক্ষেত্রে ক্রিয়াতে দেখতে চাই (যদিও আমি আপনার শব্দটি গ্রহণ করি এটি সবকিছু স্বতঃ-সারিবদ্ধ করে)। প্রথমবার আমি কিউবিআইসি দেখতে পাচ্ছি, তাই আমি যখন আপনার ব্যাখ্যাটি পড়ি তখন দুটি প্রশ্ন: আমি যদি এটি সঠিকভাবে পড়ি তবে qডিফল্ট মানটি 1 থেকে শুরু হয়? কিউবিসিতে সমস্ত মান 1 থেকে শুরু হয়, বা এখানে আমি এখানে কিছু মিস করছি? এবং d/ কোথায় dদাঁড়ায়? অথবা dলুপের বর্তমান সংখ্যা এবং ?কেবলমাত্র ফর-লুপের কোডে (একটি ?সংখ্যা বর্তমান পরিবর্তনের পরিবর্তে , আমি প্রথমে এটি কীভাবে পড়ছিলাম) পরিবর্তিত হওয়া প্রয়োজন?
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন এখনও পর্যন্ত কোনও অনলাইন দোভাষী নেই, দুঃখিত। আমি একটি নিয়ে কাজ করছি, তবে আপনার ব্রাউজারে কিউ বেসিক 4.5 চালানোর জন্য আপনি যা ভাবেন তার চেয়ে শক্ত এটি :-)। qশুরু 1. এ সমস্ত ছোট হাতের অক্ষর সংখ্যা Vars হয় ও অক্ষর q-zথেকে ইনিশিয়ালাইজ হয় 1-10। এবং বেশ কয়েকটি কমান্ড কোড অনুসারে ক্রম অনুসারে নম্বরগুলি স্বয়ংক্রিয়ভাবে বরাদ্দ করে। dপ্রকৃতপক্ষে অভ্যন্তরীণ ফোর-লুপের পুনরাবৃত্তকারী। অধিক বিবরণের জন্য, তাও দেখতে শোকেস বা - এই
steenbergh

3

পার্ল 6 , 146 বাইট

{$_:=(($^a..$^b).List,{-«.[1..*-2]}...3>*).List;$/:=[map {"%{.max}s"},roundrobin($_)».chars];map {join ',',map {$^a.fmt: $^b},flat($_ Z $/)},$_}

চেষ্টা করে দেখুন

স্ট্রিংয়ের ক্রম উত্পাদন করে

সম্প্রসারিত:

{  # bare block lambda with placeholder parameters 「$a」 and 「$b」

  # generate the data
  $_ := (                 # bind to $_ so it isn't itemized

                          # produce a sequence
    ( $^a .. $^b ).List,  # seed the sequence, and declare parameters
    { \ .[ 1 .. *-2 ] } # get all the values except the ends and negate
    ...                   # keep producing until
    3 > *                 # the length of the produced list is less than 3

  ).List;                 # turn the Seq into a List


  # generate the fmt arguments
  $/ := [                 # bind an array to 「$/」 so it isn't a Seq
    map
      { "%{ .max }s" },   # turn into a 「.fmt」 argument ("%2s")

      roundrobin($_)\     # turn the "matrix" 90 degrees
      ».chars             # get the string length of each number
  ];


  # combine them together
  map
    {
      join ',',
        map
          { $^a.fmt: $^b }, # pad each value out
          flat(
            $_ Z $/         # zip the individual number and it's associated fmt
          )
    },
    $_                      # map over the data generated earlier
}

3

পিএইচপি 7.1, 277 বাইট

for([,$a,$b]=$argv,$c=count($r=range($a,$b))/2;$c-->0;$r=range(-$r[1],-$r[count($r)-2]))$y[]=array_map(strlen,$x[]=$r);for($i=0;$i<count($y[0]);$i++)$z[$i]=max(array_column($y,$i));foreach($x as $g){$o=[];foreach($g as$k=>$v)$o[]=sprintf("%$z[$k]d",$v);echo join(",",$o)."\n";}

অনলাইন দোভাষী


2
আপনি কি কোনও অনলাইন ইন্টারপ্রেটারকে লিঙ্ক করতে পারেন?
betseg

@ বিটসেগ হয়ে গেছে এবং বুঝতে পেরেছি যে আমার সংস্করণটি সঠিকভাবে কাজ করে নি
জার্গ হালসারম্যান

ওহ কেবল কোডগলফ.এসএতে পিএইচপি ব্যবহার করছে। সমস্ত মতামত আছে।
ইভান ক্যারল

3

সি # কনসোল অ্যাপ্লিকেশন 196 বাইট

static void p(int a,int b){string S="",d ="";int c=-1;for(int i=b;i >=a;i--){c=c==1?c=-1:c=1;for(int j = a;j<=i;j++){S=j!=a?",":S="";d=d+S+(j*c);}d+= "\r\n";a++;}Console.Write(d);Console.Read();}

পিপিসিজিতে আপনাকে স্বাগতম! আপনি 4 টি স্পেস ব্যবহার করে আপনার কোডটি প্রবেশ করতে পারেন (আমার সম্পাদনা দেখুন)। কোড গল্ফের ক্ষেত্রে আপনার সংক্ষিপ্ততম বাইট-কাউন্ট (আপনার কোডের বাইটের পরিমাণ) সম্ভব হওয়া দরকার - যার অর্থ ছোট ভেরিয়েবলের নাম এবং স্পেসগুলি অপসারণ করা উচিত। এছাড়াও, একবার শেষ হয়ে গেলে আপনার বাইট-কাউন্টটি আপনার হেডারে রেখে দেওয়া উচিত।
ক্লিমেজিক

2

জাভাস্ক্রিপ্ট - 196 185 176 বাইট

function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}l.shift();l.pop()}return h}

আমি নতুন কিছু জেএস কৌশলগুলির সাথে গতি বাড়ানোর পক্ষে নেই তাই সম্ভবত এটি আরও বেশি গল্ফ হতে পারে।

কেবলমাত্র একটি পুরাতন ফ্যাশনযুক্ত এইচটিএমএল টেবিল তৈরি করে যার কোনও প্রস্থের জন্য প্রস্থ নির্ধারিত হয় না তাই প্রতিটি এন্ট্রি হেনসের অনুকূল ফাঁকির প্রস্থে প্রথম সারিতে ডিফল্ট হয়। এটি (আব) HTML টির "বৈশিষ্ট্য" ব্যবহার করে যদি কোনও নতুন খোলার ট্যাগ প্রথম আসে তবে ক্লোজিং ট্যাগগুলির প্রয়োজন নেই।

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}l.shift();l.pop()}return h}
document.write(f(-1,1))
</script>

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}l.shift();l.pop()}return h}
document.write(f(-3,6))
</script>

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}h+='</tr>';l.shift();l.pop()}return h}
document.write(f(-2,8))
</script>

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}h+='</tr>';l.shift();l.pop()}return h}
document.write(f(-15,8))
</script>

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}h+='</tr>';l.shift();l.pop()}return h}
document.write(f(-3,15))
</script>

<script>
function f(i,j){l=[];for(x=i;x<j+1;x++)l.push(x);h='<table>';while(l.length>0){h+='<tr>';for(x=0;x<l.length;x++){h+='<td align=right>'+l[x];l[x]*=-1}h+='</tr>';l.shift();l.pop()}return h}
document.write(f(-12,12))
</script>


2

পাইথন 2 - 208 বাইট

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

d,u=input()
l=[x for x in range(d,u+1)]
M=map(lambda x:~9<x<21-u-u%2and 2or 3,l)
M[-1]-=1
M[-2]-=1
while len(l)>0:print','.join(map(lambda i:('%'+'%d'%M[i]+'d')%l[i],range(len(l))));l=map(lambda e:-e,l[1:-1])

প্যাডিং মানগুলির অ্যারে তৈরি করে এবং তারপরে এটি প্রয়োজনীয় ফর্ম্যাটেড স্ট্রিংগুলি তৈরি করতে ব্যবহার করুন

ব্যাখ্যা:

d,u=input()
# create list of all values
l=[x for x in range(d,u+1)]
# create array of padding values
# by default, padding 2 used for numbers in [-9;9] and 3 for all other (limited with -99 and 99)
# but contracting list moves numbers larger that 9 under ones, that are <=9
# so upper limit of padding 2 is limited with 21-u-u%2
# (~9 == -10)
M=map(lambda x:~9<x<21-u-u%2and 2or 3,l)
# last two elements should have lower padding as there won't be any other numbers it their columns
M[-1]-=1
M[-2]-=1
while len(l)>0:
    # create formatted string for every element in l
    # join all strings with comma
    print','.join(map(lambda i:('%'+'%d'%M[i]+'d')%l[i],range(len(l))))
    # get slice without first and last element and change sigh
    l=map(lambda e:-e,l[1:-1])

হাই, পিপিসিজিতে আপনাকে স্বাগতম! দুর্ভাগ্যক্রমে, বর্তমানে এটি সঠিক নয়। আপনি সমস্ত সংখ্যায় একই মার্জিন যুক্ত করেছেন, পাশাপাশি ডিলিমিটার হিসাবে স্পেস যোগ করেছেন। চ্যালেঞ্জটি ছিল আপনার পছন্দের (সাদা স্থান বাদে) একটি ডিলিমিটার ব্যবহার করা, তবে আরও গুরুত্বপূর্ণ বিষয়: সেই নির্দিষ্ট কলামের বৃহত্তম প্রস্থের সাথে সংখ্যার ভিত্তিতে প্রান্তিককরণ রাখুন। দয়া করে দেখুনউদাহরণস্বরূপ পরীক্ষার কেসগুলির পাশাপাশি চ্যালেঞ্জের গুরুত্বপূর্ণ বিভাগটি । আপনি এটির ভুলটি করার জন্য প্রথম ব্যক্তি নন তবে বর্তমানে নির্দিষ্ট চ্যালেঞ্জ সহ এটি বৈধ নয়। বিধিগুলি মেনে চলতে, সংশোধন করতে এবং আপনার উত্তরটি মুছে ফেলার জন্য
নির্দ্বিধায়

2
@ কেভিন ক্রুজসেন এটি দেখানোর জন্য আপনাকে ধন্যবাদ! আমি আমার উত্তর আপডেট করেছি
ডেড পসসাম

1
এটি সত্যিই অনেক ভাল দেখাচ্ছে! আপনি কেবল একটি ছোট্ট নিয়ম ভুলে গিয়েছিলেন: " আউটপুটটিতে আপনার নিজের পছন্দসইয়ের একটি ডিলিমিটারও থাকতে পারে (শ্বেতস্থান এবং নতুন লাইনগুলি বাদে) : ,এবং ;এবং |সমস্ত গ্রহণযোগ্য ডিলিমিটার Currently" বর্তমানে আপনি একটি স্থানকে ডিলিমিটার হিসাবে ব্যবহার করেন। তবে প্রস্থের মূল সমস্যাটি সত্যিই মোকাবেলা করা হয়েছে, সুতরাং আপনি এখন পর্যন্ত দুর্দান্ত করছেন! শুধুমাত্র এই ছোট পরিবর্তন, এবং তারপরে এটি করা উচিত। :)
কেভিন ক্রুইজসেন

1
পারফেক্ট! +1 ভাল কাজ সবকিছু সংশোধন করে। এবং আবারও পিপিসিজিতে স্বাগতম। (বিটিডব্লিউ, এখানে কি স্থান আছে: %l[i], rangeপ্রয়োজনীয়?)
কেভিন ক্রুইজসেন 12'17

2
@ কেভিন ক্রুইজসেন আমি আশা করি কিছুক্ষণের জন্য পিপিসিজি ঘিরে থাকবে, এটি খুব আকর্ষণীয় বলে মনে হচ্ছে (না, আরও একটি বাইট সংরক্ষিত)
ডেড পসুম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.