চিলার জন্য একটি গুণ টেবিল


26

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

চিলার মধ্যে হ্যাচলিংয়ের যত্ন নেওয়া এবং তরুণদের পড়াশোনা করা ওল্ড অনার্সের কাজ। যেহেতু অল্প বয়স্ক চিলাকে কীভাবে গুণন করা যায় তা শেখানো দরকার, ওল্ড ওনারা একটি গুণ টেবিল ব্যবহার করতে পারে।

আপনার কাজটি নীচের মত বেসে একটি 12x 12গুণ গুণ টেবিল উত্পাদন করা হয় 12। বড় হাতের অক্ষর Aএবং Bদশমিক 10 এবং 11যথাক্রমে সংখ্যার জন্য ব্যবহৃত হয়।

  1   2   3   4   5   6   7   8   9   A   B  10 
  2   4   6   8   A  10  12  14  16  18  1A  20 
  3   6   9  10  13  16  19  20  23  26  29  30 
  4   8  10  14  18  20  24  28  30  34  38  40 
  5   A  13  18  21  26  2B  34  39  42  47  50 
  6  10  16  20  26  30  36  40  46  50  56  60 
  7  12  19  24  2B  36  41  48  53  5A  65  70 
  8  14  20  28  34  40  48  54  60  68  74  80 
  9  16  23  30  39  46  53  60  69  76  83  90 
  A  18  26  34  42  50  5A  68  76  84  92  A0 
  B  1A  29  38  47  56  65  74  83  92  A1  B0 
 10  20  30  40  50  60  70  80  90  A0  B0 100

আউটপুট শোর স্ক্রিনে মুদ্রিত করা। ফর্ম্যাটটি নিম্নরূপ হওয়া উচিত:

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

      1    2    3    4    5    6    7    8    9    A    B   10 
      2    4    6    8    A   10   12   14   16   18   1A   20 
      3    6    9   10   13   16   19   20   23   26   29   30 
      4    8   10   14   18   20   24   28   30   34   38   40 
      5    A   13   18   21   26   2B   34   39   42   47   50 
      6   10   16   20   26   30   36   40   46   50   56   60 
      7   12   19   24   2B   36   41   48   53   5A   65   70 
      8   14   20   28   34   40   48   54   60   68   74   80 
      9   16   23   30   39   46   53   60   69   76   83   90 
      A   18   26   34   42   50   5A   68   76   84   92   A0 
      B   1A   29   38   47   56   65   74   83   92   A1   B0 
     10   20   30   40   50   60   70   80   90   A0   B0  100
    

নিউট্রন স্টারে কম্পিউটার স্টোরেজটি সত্যই ব্যয়বহুল, সুতরাং আপনার কোডটি যতটা সম্ভব কম বাইট ব্যবহার করা উচিত।

বর্ধিত চ্যালেঞ্জ এবং বোনাস

আদর্শভাবে আপনার কোডটি মহাবিশ্বের অন্যান্য অংশগুলিতে পুনরায় ব্যবহার করা উচিত, যেখানে অন্যান্য সংখ্যায়ন ব্যবস্থা ব্যবহার করা যেতে পারে। সে লক্ষ্যে চ্যালেঞ্জটি নিম্নরূপে প্রসারিত হয়েছে: আপনার কোডটি একটি সংখ্যা Nইনপুট হিসাবে গ্রহণ করে এবং উপরের ফর্ম্যাট সহ বেসে একটি Nx Nগুণ গুণ সারণি উত্পন্ন Nকরে।

ইনপুট কীবোর্ড থেকে বা কোনও ফাংশন আর্গুমেন্ট হিসাবে হতে পারে। প্রোগ্রাম বা ফাংশন জন্য কাজ করা উচিত 2N36প্রথম ডিজিট যেমন ব্যবহার করে, Nক্রম অক্ষর 0, 1, ..., 9, A, B, ..., Z(অক্ষর বড় হাতের)

এই বর্ধিত চ্যালেঞ্জ alচ্ছিক। আপনি যদি এই রুটটি অনুসরণ করেন তবে আপনার বাইট গণনা থেকে 20% (কোনও পূর্ণসংখ্যার সংখ্যার সাথে গোল করার প্রয়োজন নেই) ছাড়ুন।


ভাল এক লুই! =) আমি আশা করি আমার একটি ম্যাটল্যাব সমাধান নিয়ে আসার সময় ছিল তবে আমি ক্রিসমাসের উপহারের মাত্রাগুলি পরিমাপে ব্যস্ত ...
স্টিভি গ্রিফিন

6
সেই গোলাকার টুপিগুলির জন্য শুভকামনা! :
লুইস মেন্ডো

5
Because they have twelve eyes, they naturally use a base-12 numbering system.ভাল, প্রাকৃতিকভাবে। সে কারণেই আমরা বাইনারি ব্যবহার করি, সর্বোপরি ... ;-)
টিম পেডারিক

2
@ টিমপিডেরিক ভালো বক্তব্য :-D স্পষ্ট করে বলতে: একটি চিলার দেহটি বিজ্ঞপ্তিযুক্ত, তারা প্রয়োজন অনুসারে অঙ্গ পুনরায় আকার দিতে পারে ... বারো চোখের সংখ্যা হ'ল তাদের দেহের সংখ্যাগতভাবে স্বতন্ত্র বৈশিষ্ট্য। আমি প্রশ্ন আপডেট করেছি, ধন্যবাদ!
লুইস মেন্ডো

1
@ লুইস মেন্ডো খুব সুন্দর উপন্যাস, যেটা আপনি উদ্ধৃত করেছেন। স্টারকোক খারাপও নয়।
lstefano

উত্তর:


14

পাইথ, 27 * 0.8 = 21.6

VSQsm.[\ 4jkXj*dNQrT99rG1SQ

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

VSQsm.[\ 4jkXj*dNQrT99rG1SQ   implicit: Q = input number
VSQ                           for N in [1, 2, ..., Q]:
    m                    SQ      map each number d in [1, 2, ..., Q] to:
              *dN                   N * d
             j   Q                  in base Q
            X     rT99rG1           replace the numbers [10, 11, ..., 98] with "A...Z"
          jk                        join to a string
     .[\ 4                          prepend spaces, so that the string has a length of 4
   s                             join all strings and print

11

সিজেএম, 33 * 0.8 = 26.4 বাইট

ri:C,:)_ff{*Cb{_9>{'7+}&}%4Se[}N*

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

এটি সর্বনিম্ন প্রয়োজনীয় বিচ্ছেদ ব্যবহার করে।

ব্যাখ্যা

ri:C        e# Read input, convert to integer, store in C.
,:)         e# Get range [1 2 ... C].
_ff{        e# 2D-map over all repeated pairs from that range...
  *Cb       e#   Multiply, convert to base C.
  {         e#   Map over the digits...
    _9>     e#     Check if the digit is greater than 9.
    {'7+}&  e#     If so, add the digit to the character "7", to get "A" to "Z".
  }%
  4Se[      e#   Pad the digits with spaces from the left, to 4 elements.
}
N*          e# Join with linefeeds.

ইনপুট জন্য সারণী 22(একটি অনুভূমিক স্ক্রোলবার ছাড়াই পোস্টে সবচেয়ে বেশি ফিট করে):

   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F   G   H   I   J   K   L  10
   2   4   6   8   A   C   E   G   I   K  10  12  14  16  18  1A  1C  1E  1G  1I  1K  20
   3   6   9   C   F   I   L  12  15  18  1B  1E  1H  1K  21  24  27  2A  2D  2G  2J  30
   4   8   C   G   K  12  16  1A  1E  1I  20  24  28  2C  2G  2K  32  36  3A  3E  3I  40
   5   A   F   K  13  18  1D  1I  21  26  2B  2G  2L  34  39  3E  3J  42  47  4C  4H  50
   6   C   I  12  18  1E  1K  24  2A  2G  30  36  3C  3I  42  48  4E  4K  54  5A  5G  60
   7   E   L  16  1D  1K  25  2C  2J  34  3B  3I  43  4A  4H  52  59  5G  61  68  6F  70
   8   G  12  1A  1I  24  2C  2K  36  3E  40  48  4G  52  5A  5I  64  6C  6K  76  7E  80
   9   I  15  1E  21  2A  2J  36  3F  42  4B  4K  57  5G  63  6C  6L  78  7H  84  8D  90
   A   K  18  1I  26  2G  34  3E  42  4C  50  5A  5K  68  6I  76  7G  84  8E  92  9C  A0
   B  10  1B  20  2B  30  3B  40  4B  50  5B  60  6B  70  7B  80  8B  90  9B  A0  AB  B0
   C  12  1E  24  2G  36  3I  48  4K  5A  60  6C  72  7E  84  8G  96  9I  A8  AK  BA  C0
   D  14  1H  28  2L  3C  43  4G  57  5K  6B  72  7F  86  8J  9A  A1  AE  B5  BI  C9  D0
   E  16  1K  2C  34  3I  4A  52  5G  68  70  7E  86  8K  9C  A4  AI  BA  C2  CG  D8  E0
   F  18  21  2G  39  42  4H  5A  63  6I  7B  84  8J  9C  A5  AK  BD  C6  CL  DE  E7  F0
   G  1A  24  2K  3E  48  52  5I  6C  76  80  8G  9A  A4  AK  BE  C8  D2  DI  EC  F6  G0
   H  1C  27  32  3J  4E  59  64  6L  7G  8B  96  A1  AI  BD  C8  D3  DK  EF  FA  G5  H0
   I  1E  2A  36  42  4K  5G  6C  78  84  90  9I  AE  BA  C6  D2  DK  EG  FC  G8  H4  I0
   J  1G  2D  3A  47  54  61  6K  7H  8E  9B  A8  B5  C2  CL  DI  EF  FC  G9  H6  I3  J0
   K  1I  2G  3E  4C  5A  68  76  84  92  A0  AK  BI  CG  DE  EC  FA  G8  H6  I4  J2  K0
   L  1K  2J  3I  4H  5G  6F  7E  8D  9C  AB  BA  C9  D8  E7  F6  G5  H4  I3  J2  K1  L0
  10  20  30  40  50  60  70  80  90  A0  B0  C0  D0  E0  F0  G0  H0  I0  J0  K0  L0 100

8

এমএটিএল , 42 * .8 = 33.6

দাবি পরিত্যাগী

যেহেতু ভাষার স্রষ্টা এবং চ্যালেঞ্জের লেখক একই, এই উত্তরটি জয়ের পক্ষে উপযুক্ত নয়

এই সীমাবদ্ধতাটি প্রয়োজনীয় কিনা তা নিয়ে আলোচনার জন্য এই মেটা প্রশ্নটি দেখুন

কোড

iXK:t!*Y)KYAZ{'(?<=^0*)0'32cYXZc32hK4*[]e!

এটি সর্বনিম্ন বিচ্ছেদ ব্যবহার করে।

উদাহরণ

অষ্টাল গুণ গুণ

>> matl
 > iXK:t!*Y)KYAZ{'(?<=^0*)0'32cYXZc32chK4*[]e!
 > 
> 8
  1   2   3   4   5   6   7  10 
  2   4   6  10  12  14  16  20 
  3   6  11  14  17  22  25  30 
  4  10  14  20  24  30  34  40 
  5  12  17  24  31  36  43  50 
  6  14  22  30  36  44  52  60 
  7  16  25  34  43  52  61  70 
 10  20  30  40  50  60  70 100 

ব্যাখ্যা

i              % input number, say n
XK             % copy to clipboard K
:              % vector 1, 2, ... n
t!*            % generate table: duplicate, transpose and multiply with broadcasting
Y)             % linearize into column array
KYA            % paste n from clipboard K. Convert to that base
Z{             % cell array of rows from array
'(?<=^0*)0'    % string literal for regexp replacement: find leading zeros
32c            % space character (for regexp replacement)
YX             % regexp replacement
Zc             % join cell array of strings into single string   
32             % code for space character. Conversion to char happens automatically
h              % concatenate horizontally
K4*[]e!        % paste n and multiply by 4. Reshape into 2D char array with 4*n columns

সম্পাদনা করুন: এটি অনলাইন চেষ্টা করুন !

অনলাইন সংকলক চালাতে (19 ফেব্রুয়ারী 19, 2016 হিসাবে), এ পরিবর্তন Y)করুন X:এবং সরান []। এই চ্যালেঞ্জটি পোস্ট হওয়ার পরে থেকে ভাষায় যে পরিবর্তন হয়েছে তার সাথে খাপ খাইয়ে নেওয়ার জন্য এটি।


"যেহেতু ভাষার স্রষ্টা এবং চ্যালেঞ্জের লেখক একই, তাই এই উত্তরটি জয়ের যোগ্য নয়" " আমি এই সীমাবদ্ধতা সম্পর্কে অবগত ছিলাম না। এটি কি স্ব-চাপিয়েছে বা আপনি কোনও প্রাসঙ্গিক মেটা sensকমত্য পেয়েছেন?
অ্যালেক্স এ।

1
@AlexA। আমি এটি স্ব-চাপিয়ে দিয়েছি। আমি সন্দেহ করেছি যে সম্ভবত এটির সাথে একরকম চুক্তি হয়েছিল। তোমার সমাহার থেকে আমি দেখতে পাচ্ছি সেখানে কি নেই? আমার বক্তব্যটি: আপনি যদি কোনও ভাষা নকশা করেন এবং তারপরে কোনও চ্যালেঞ্জ পোস্ট করেন তবে আপনি সম্ভবত কোনও সুবিধাজনক অবস্থানে রয়েছেন। সাধারণত এটি সম্পর্কে কি করা হয়? কোনও বাধা নেই?
লুইস মেন্ডো

আমি মনে করব আপনি এতক্ষণ কোনও সুবিধা নেবেন না যতক্ষণ আপনি আপনার ভাষায় অন্তর্নির্মিত ব্যবহারের ক্ষেত্রে বিশেষত কোনও চ্যালেঞ্জের পরিকল্পনা করেন না। আমি এ জাতীয় কোনও offকমত্যের কথা জানি না, তাই আমি মেটাকে জিজ্ঞাসা করার পরামর্শ দিই।
অ্যালেক্স এ।

@AlexA। ভাল ধারণা! সম্পন্ন
লুইস মেন্ডো

@AlexA। আপনি যদি এটি করার মতো বোধ করেন, তবে সম্ভবত সেখানে একটি উত্তর হিসাবে আপনার পরামর্শ যুক্ত করবেন?
লুইস মেন্ডো

5

বাশ + বিএসডি ইউটিলিটিস, 36

echo Co{1..12}d{1..12}*p|dc|rs -j 12

ওএস এক্স-এ-বক্স-অফ-বাক্স কাজ rsকরে Linux লিনাক্স সিস্টেমে ইনস্টল করার প্রয়োজন হতে পারে।

  • বাশ প্রসারিত Co{1..12}d{1..12}*pহয় Co1d1*p Co1d2*p Co1d3*p ... Co1d12*p ... Co12d12*p
  • এটি এমন একটি dcঅভিব্যক্তি যা প্রয়োজনীয় পদ তৈরি করে। Coআউটপুট বেসটি 12 তে সেট করে dএকটি স্থানের পরিবর্তে সংখ্যার মধ্যে বিভাজক হিসাবে ব্যবহৃত হয়, তাই ব্রেস সম্প্রসারণে কোনও পালানোর প্রয়োজন হয় না। dআসলে স্ট্যাকের শীর্ষটিকে নকল করে তবে এটি কার্যকরভাবে উপেক্ষা করা এবং বাতিল করা হয়।
  • আউটপুটটি dcএকটি একক স্থান-বিভাজিত লাইন। rsএটি 12x12 অ্যারে পুনরায় আকার দেয়। -jপ্রতিটি শব্দকে ন্যায়সঙ্গত করে তোলে।

4

পাইথ, 36 বাইট

Km+1dUJ12rjbmjkm.[\ 4j""m.Hbj*dkJKK1

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


আপনি প্রতিস্থাপন করতে পারেন Km+1dUJ12সঙ্গে KSJ12Sসীমা তৈরি করে [1, 2, ..., 12]। আপনি উভয় প্রতিস্থাপন করতে পারেন j""এবং jkসঙ্গে s, আপনার যোগদান স্ট্রিং থেকে। এবং অন্য বাইট: পরিবর্তন rjbm...K1করুন jmr...1K। এই পরিবর্তনগুলির সাথে আপনি 28 বাইট পাবেন:KSJ12jmrsm.[\ 4sm.Hbj*dkJK1K
জাকুব

4

পাইথন, 153 147 132 বাইট * 0.8 = 105.6

def p(b):
 f=lambda n:(n>=b and f(n/b)or'')+chr((48,55)[n%b>9]+n%b)
 for i in range(b*b):print'%4s\n'[:3+(~i%b<1)]%f(~(i%b)*~(i/b)),

টিম পেডেরিকের পরামর্শের জন্য 132 বাইট নিচে ধন্যবাদ! :)


উত্সাহিত, কারণ আমি আমার উত্তরটি যত বেশি গল্ফ করি , ততই এটি আপনার মতো দেখতে শুরু হয়!
টিম পেডেরিক

কিছু সম্ভাব্য উন্নতি: rjust( '%4s'%f(...)) এর পরিবর্তে%-ফর্ম্যাটিং ব্যবহার করুন । প্রতিটি মান মুদ্রণ print ...,(এবং তারপরে একটি printনতুন লাইনের জন্য একটি) এর চেয়ে ছোট কিনা তা দেখুন join। যদি তা হয় তবে লুপগুলি ভেঙ্গে ফেলার চেষ্টা করুন ।
টিম পেডারিক

ধন্যবাদ টিম, আমি লুপগুলি ভেঙে দেওয়ার চেষ্টা করেছি (আমি এই কৌশলটি জানতাম না)। আমি নিশ্চিত নই যে এটি আমার পক্ষে অনেকগুলি বাইট অর্জন করতে সক্ষম তবে এটি বেশ দুর্দান্ত :)
বেসিল-হেনরি

আমি তোমাকে একটা তিন ফর্ম (শর্ত স্যুইচ দেখতে andএকটি orফাংশন ভিতরে বি) fব্যবহার n>=b। আমি যতক্ষণ না বুঝতে পেরেছিলাম যে এটি আমার আগে যা ছিল তার চেয়ে কম n//bনয় ... তবে আপনি পাইথন 2 ব্যবহার করছেন! আপনি এটি দিয়ে একটি বাইট সংরক্ষণ করতে পারেন n/b
টিম পেডারিক

হ্যাঁ এই কারণেই আমি আপনার কোডের এই অংশটি পাইথন 2 ব্যবহার করে আরও একটি বাইট বাঁচাতে ব্যবহার করেছি :)
বেসিল-হেনরি

4

সিজেএম, 38 33 32 38 * (.8) = 30.4 বাইট

qi:D,:):L{Lf*{Db{_9>{55+c}&}%4Se[}%N}%

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

(দেখতে এখন মার্টিনের সাথে বেশ মিল রয়েছে)

qi:D,:):L          e# Generate list of [1...input]
{Lf*               e# Take each number in that list and multiply it by the same list ([[1,2,3,..,input][2,4,6,...,input],...})
{Db{_9>{55+c}&}%   e# Convert each product to base input. If a digit value is >= 10 add 55 and convert to char, to make it a letter.
4Se[}%N}%          e# Pad each number with spaces to length 4. Put a newline after each row.

3

পার্ল 6 , 60 বাইট -20% = 48 বাইট

{.put for (1..$_ X*1..$_)».base($_)».fmt('%3s').rotor($_)} # 60-20% = 48
#          ^-----------^ produce a list of two cross multiplied lists
#                        ^--------^ convert each to base N
#          format each to 3 spaces ^----------^
#         split the list into N element chunks ^--------^
#^-------^ print each of those on their own line with spaces between elements

(এটি প্রায় আমি ঠিক কীভাবে লিখতে পারি যদিও আমি যতটা পারি তার চেয়ে ছোট করার চেষ্টা না করছিলাম)

ব্যবহার:

{...}(2)
  1  10
 10 100
my &code = {...}
code 2;
  1  10
 10 100
{...}(12);
  1   2   3   4   5   6   7   8   9   A   B  10
  2   4   6   8   A  10  12  14  16  18  1A  20
  3   6   9  10  13  16  19  20  23  26  29  30
  4   8  10  14  18  20  24  28  30  34  38  40
  5   A  13  18  21  26  2B  34  39  42  47  50
  6  10  16  20  26  30  36  40  46  50  56  60
  7  12  19  24  2B  36  41  48  53  5A  65  70
  8  14  20  28  34  40  48  54  60  68  74  80
  9  16  23  30  39  46  53  60  69  76  83  90
  A  18  26  34  42  50  5A  68  76  84  92  A0
  B  1A  29  38  47  56  65  74  83  92  A1  B0
 10  20  30  40  50  60  70  80  90  A0  B0 100
{...}(18);
  1   2   3   4   5   6   7   8   9   A   B   C   D   E   F   G   H  10
  2   4   6   8   A   C   E   G  10  12  14  16  18  1A  1C  1E  1G  20
  3   6   9   C   F  10  13  16  19  1C  1F  20  23  26  29  2C  2F  30
  4   8   C   G  12  16  1A  1E  20  24  28  2C  2G  32  36  3A  3E  40
  5   A   F  12  17  1C  1H  24  29  2E  31  36  3B  3G  43  48  4D  50
  6   C  10  16  1C  20  26  2C  30  36  3C  40  46  4C  50  56  5C  60
  7   E  13  1A  1H  26  2D  32  39  3G  45  4C  51  58  5F  64  6B  70
  8   G  16  1E  24  2C  32  3A  40  48  4G  56  5E  64  6C  72  7A  80
  9  10  19  20  29  30  39  40  49  50  59  60  69  70  79  80  89  90
  A  12  1C  24  2E  36  3G  48  50  5A  62  6C  74  7E  86  8G  98  A0
  B  14  1F  28  31  3C  45  4G  59  62  6D  76  7H  8A  93  9E  A7  B0
  C  16  20  2C  36  40  4C  56  60  6C  76  80  8C  96  A0  AC  B6  C0
  D  18  23  2G  3B  46  51  5E  69  74  7H  8C  97  A2  AF  BA  C5  D0
  E  1A  26  32  3G  4C  58  64  70  7E  8A  96  A2  AG  BC  C8  D4  E0
  F  1C  29  36  43  50  5F  6C  79  86  93  A0  AF  BC  C9  D6  E3  F0
  G  1E  2C  3A  48  56  64  72  80  8G  9E  AC  BA  C8  D6  E4  F2  G0
  H  1G  2F  3E  4D  5C  6B  7A  89  98  A7  B6  C5  D4  E3  F2  G1  H0
 10  20  30  40  50  60  70  80  90  A0  B0  C0  D0  E0  F0  G0  H0 100

বিশেষজ্ঞ নন, তবে 'এর' এবং '(') এর মধ্যে ফাঁকা স্থানটি কী দরকার? যেখানে সম্ভব স্থানগুলি ক্লিপ করতে হবে
J_F_B_M

@ জ_এফ_বি_এম আমি সর্বদা প্রথমে স্পেসগুলি সরিয়ে দেওয়ার চেষ্টা করি। সুতরাং যদি কোনও স্থান থাকে তবে এটি প্রয়োজন। যদি আমি স্থানটি সরিয়ে ফেলতে পারি তবে এটি সংশোধনকারী লুপ কনস্ট্রাক্টের পরিবর্তে for(নামের সাব্রোটিন নামক কলিংয়ের সূচনা হিসাবে বিবেচিত forহবে এমনভাবে এটি সংকলনও করবে না for। যা সংকলনের ত্রুটির কারণ হতে পারে।
ব্র্যাড গিলবার্ট

কিছু শিখেছি। ধন্যবাদ.
J_F_B_M

3

জাভাস্ক্রিপ্ট (ES6) 84 (105-20%)

স্পষ্ট উপায়, সঙ্গে শুরু।

n=>{for(o=i=``;i++<n;o+=`
`)for(j=0;j++<n;)o+=(`   `+(i*j).toString(n)).slice(-4).toUpperCase();alert(o)}

নোট

  • এটি একটি করুণ জেএস টুস্ট্রিং ছোট হাতের অক্ষর উত্পাদন করে
  • alert টেবিল আউটপুট দেওয়ার সর্বোত্তম উপায় নয়, তবে এটি ছোট, কারণ "স্ক্রিনে প্রদর্শন" করার জন্য একটি সুস্পষ্ট অনুরোধ রয়েছে
  • কেবল মানটি ফিরিয়ে দেওয়া কয়েক বাইট সংক্ষিপ্ত হবে।

কম গল্ফড

n=>{
  for(o='', i=0; i++<n; o+='\n')
    for(j=0;j++<n;)
       o+=('   '+(i*j).toString(n)).slice(-4).toUpperCase()
  alert(o)
}

3

পাইথন 3, 126 - 20% = 100.8 বাইট

বাহ্যিক ফাংশন,, tহ'ল এটি হ'ল গুণক সারণীটি মুদ্রণ করে। অভ্যন্তরীণ ফাংশন, i2 থেকে 36 এর মধ্যে একটি সংখ্যার রূপান্তর করে।

def t(b):
 i=lambda n:(n>=b and i(n//b)or'')+chr(n%b+[48,55][n%b>9]);R=range(b)
 for r in R:print(*('%3s'%i(~r*~c)for c in R))

জন্য বুমের্যাং করার হাট ডগা তাদের সমাধান এবং একটি golfing টিপ জন্য। আমি বুমেরাংয়ের সমাধান থেকে কোনও কিছু অনুলিপি করা এড়িয়ে গেছি, তবে আমি কোথায় নিজেকে আরও ছাঁটাতে পারি তা দেখার জন্য আমি নিজের দিকে ঝলক দেখলাম। এবং তারও আগে, আমি দেখতে পেলাম যে আমি এটি যত বেশি গল্ফ করলাম, ততই আমার বুমেরংয়ের মতো দেখতে লাগবে!


চমৎকার সমাধান! :) এবং আপনি আমার চেয়ে ভাল স্কোর পাবেন! আমি আমার <10 এর পরিবর্তে> 9 টি পছন্দ করি। আমি পাইথন 3 এবং অভিনীত এক্সপ্রেশনগুলির সাথে খুব বেশি পরিচিত নই (আমার এটি সন্ধান করতে হবে)। আমি আপনার কৌতুক ভালবাসি, আমি এটি ব্যবহার শুরু করা প্রয়োজন!
বেসাইল-হেনরি

আমি আপনার সমাধানটি কিছুটা পরীক্ষা করেছি এবং দেখে মনে হচ্ছে যে আমি দুটি বেস এন অঙ্কের বেশি ফিরে আসছি না। উদাহরণস্বরূপ, যদি আপনি এর পরিবর্তে print(i(15,12),i(120,12),i(144,12),i(150,12))আপনার কোডটি রিটার্ন করেন । দুর্ভাগ্যক্রমে টাস্কটির জন্য একটি 3 ডিজিটের বেস এন সংখ্যা (100) মুদ্রণ করা দরকার। এটি ঠিক করা খুব বেশি কঠিন হওয়া উচিত না তবে এটি কয়েকটি বাইট যুক্ত করতে পারে ...13 A0 00 0613 A0 100 106
বেসাইল-হেনরি

@Boomerang: <scratches এবং head> আমার মনে হয় আমি কিছু ভেঙ্গে নানারকম, তাহলে ... কারণ এটি ছিল আগে কাজ! সমস্যাটি মনে হচ্ছে এটি শীর্ষস্থানীয় 1 দেয় না ... ওহ, অপেক্ষা করুন, আমি জানি সমস্যাটি কী। এটা হওয়া উচিত n>=b, না n>b
টিম পেডারিক

কোডটি আরও ছোট করার জন্য আমি আরও একটি কৌশল পেয়েছি: টি (বি) এর মধ্যে আমি সংজ্ঞা দিন যাতে আপনি দ্বিতীয় যুক্তিটি সরিয়ে ফেলতে পারেন! এটির মতো: def t(b): i=lambda n:(n>=b and i(n//b)or'')+chr(n%b+[48,55][n%b>9]) R=range(b) for r in R:print(*('%3s'%i(~r*~c)for c in R))আমি আমার সমাধানে এটি করতে চাই তবে এখন আমাদের উভয় সমাধানই বেশ কাছাকাছি, পাশাপাশি আরও উন্নত হতে পারে
বেসাইল-হেনরি

@ বুমেরাং: আরে, আপনার প্রথমটি ছিল এবং আমি মনে করি পাইথন 2 যথেষ্ট শর্টকাট সরবরাহ করে যা আপনি এখনও আমাকে ছাড়িয়ে যেতে পারেন। কিন্তু সাহায্যের জন্য ধন্যবাদ!
টিম পেডারিক

3

জাভাস্ক্রিপ্ট (ES6) 96.8 93.6 বাইট (117 এর 20%)

n=>{b='';for(i=0;i++<n;b+=`\n`)for(j=0;j++<n;)a=(i*j).toString(n).toUpperCase(),b+=' '.repeat(4-a.length)+a;alert(b)}

ব্যাখ্যা

n=>
    {                                     
      b='';                                    //clear table var at each run
      for(i=0;i++<n;b+=`\n`)                   //iterate through rows
        for(j=0;j++<n;)                        //iterate through cols
          a=(i*j).toString(n).toUpperCase(),   //get desired number
          b+=' '.repeat(4-a.length)+a";        //pad to right
    alert(b)                                   //display result
}

- @ এডসি 65 এর জন্য 4 টি বাইট সংরক্ষণ করা হয়েছে


1
কেবল {} ব্যবহার করা এবং এর alert(b)সাথে evalসংক্ষিপ্ত নয়। এবং কমপক্ষে, পরিবর্তনশীল ab+=' '.repeat(4-a.length)+(i*j).toString(n).toUpperCase()
এড়ান

ধন্যবাদ 😊 আমি এটি প্রদর্শন করার প্রয়োজনটি দেখিনি তাই আমার জন্য eval () মূলত মান ফেরানোর চেয়ে কম ছিল। @ edc65 তবে, আমি যদি এড়িয়ে যাই তবে aআপনি কীভাবে গণনা করবেন ...repeat(4-a.length)...?
Aᴄʜᴇʀᴏɴғᴀɪʟ

উফ দুঃখিত আপনি ঠিক একটি সম্পর্কে। +1 যেমন
edc65

2

ম্যাটল্যাব, 111 * 0.8 = 88.8 110 * 0.8 = 88 বাইট

আমার আত্মপ্রকাশ এখানে:

@(N)disp(reshape(strrep(strrep([' ',strjoin(cellstr(dec2base([1:N]'*[1:N],N)))],' 0','  '),' 0','  '),4*N,N)')

ব্যাখ্যা:

[1:N]'*[1:N] বেস 10 তে গুণ টেবিল তৈরি করুন

dec2base([1:N]'*[1:N],N) বেস 12 এ রূপান্তর করুন আউটপুটটি নেতৃস্থানীয় 0-গুলি সহ চর অ্যারে হয়

strjoin(cellstr(dec2base(___))) 1x575 স্ট্রিং প্রদান করে স্থানটিতে জোড় স্ট্রিংগুলিতে ঘরে এবং ঘরে ফিরে আসুন

[' ',strjoin(___)] 576 উপাদান রয়েছে স্থান যুক্ত করুন

strrep(___,' 0',' ')একটি শূন্য শূন্য সরান। আমরা দু'বার এটি করি কারণ আমাদের দুটি শীর্ষস্থানীয় জিরো দিয়ে স্ট্রিং রয়েছে

reshape(___,4*N,N)' 1x576 চর অ্যারে 48x12 চর অ্যারে রূপান্তর করুন

disp(___) ছাড়াই ফলাফল প্রদর্শন করুন ans =

আউটপুট:

 1   2   3   4   5   6   7   8   9   A   B  10
 2   4   6   8   A  10  12  14  16  18  1A  20
 3   6   9  10  13  16  19  20  23  26  29  30
 4   8  10  14  18  20  24  28  30  34  38  40
 5   A  13  18  21  26  2B  34  39  42  47  50
 6  10  16  20  26  30  36  40  46  50  56  60
 7  12  19  24  2B  36  41  48  53  5A  65  70
 8  14  20  28  34  40  48  54  60  68  74  80
 9  16  23  30  39  46  53  60  69  76  83  90
 A  18  26  34  42  50  5A  68  76  84  92  A0
 B  1A  29  38  47  56  65  74  83  92  A1  B0
10  20  30  40  50  60  70  80  90  A0  B0 100 

আমরা বিবৃতি গণনা করা হয় না এমন N=12;, 5*.8=4বাইট সংরক্ষিত হয়। এছাড়াও, যদি ans =আউটপুট সহ্য করা হয়, তবে আমরা disp()অন্য 6*0.8=4.8বাইটগুলি সংরক্ষণ করে সরাতে পারি । অবশ্যই, বাইটগুলি সংরক্ষণ করার অন্যান্য উপায় থাকতে পারে :)


সাধারণভাবে, ansআউটপুট সহ্য হয় যদি আউটপুট একটি ফাংশন আর্গুমেন্ট হয়। তবে এই ক্ষেত্রে চ্যালেঞ্জটি বলে যে "স্ক্রিনে আউটপুট প্রিন্ট করা উচিত", সুতরাং ansঅনুমোদিত নয়। এছাড়াও, Nবর্ধিত চ্যালেঞ্জের ইনপুট হিসাবে নেওয়া উচিত। আপনি একটি অনামী ফাংশন ব্যবহার করে এটি সমাধান করতে পারেন @(n)disp(reshape(strrep(strrep([' ',strjoin(cellstr(dec2base([1:N]'*[1:N],N)))],' 0',' '),' 0',' '),4*N,N)')ans(12)
:,

1
ওহ এবং সাইটে আপনাকে স্বাগতম! :-)
লুইস মেন্ডো

@ লুইস মেন্ডো ধন্যবাদ! আমি আমার উত্তর @ (এন) স্বরলিপি দিয়ে সম্পাদনা করব
ব্রেকিংজ

2

পাইথন 3: 166 161 152 - 20% = 121.6 বাইট

আমি জানি এটি বিদ্যমান পাইথন উত্তরের চেয়ে নিকৃষ্টতর তবে আমি এটি শট দিতে পেরেছিলাম। এটি আমার সাইটে প্রথমবার পোস্ট করা ...

def t(b):
 r=range(1,b+1);f=lambda x:x and f(x//b)+chr((55,48)[x%b>9]+x%b)or''
 print('\n'.join(''.join(B)for B in(('%4s'%f(i*j)for j in r)for i in r)))

এখানে 3 টি বন্ধকৃত বন্ধনী এবং 2 টি সংখ্যাসূচক অক্ষর রয়েছে যার পরে স্পেস রয়েছে। সেই জায়গাগুলি অপ্রয়োজনীয়। নাহলে প্রথম চেষ্টা করুন। বিটিডাব্লু, পাইথনে গল্ফ করার টিপস একটি দুর্দান্ত পড়া।
manatwork

পিপিসিজি.এসই তে স্বাগতম, যদিও এটি অন্য পাইথন উত্তরগুলিকে না হারায়, যতক্ষণ না এটি পৃথক (একইভাবে অ্যালগরিদম / ধারণা নয়), আপনি এটি পোস্ট করতে পারেন :)।
কাটেনকিও

@ মান্যাটওয়ার্ক ধন্যবাদ! আমি এটি পেয়েছিলাম আরও 9 বাইট বন্ধ।
তিমু পাইপ্পো

2

এপিএল, 32 31 × 0.8 = 24.8 বাইট

{¯4↑¨⊃∘(⎕D,⎕A)¨¨⍵⊥⍣¯1¨∘.×⍨1+⍳⍵}

ইংরাজীতে:

  • ∘.×⍨1+⍳⍵: গুণিতক সারণী
  • ⍵⊥⍣¯1¨: বেসে প্রকাশ করুন the গুণক সারণীর প্রতিটি উপাদান
  • ⊃∘(⎕D,⎕A)¨¨: সংখ্যার ভেক্টরের টেবিলটিকে অক্ষরের ভেক্টরের টেবিলে রূপান্তর করুন
  • ¯4↑¨: ফলাফলের প্রতিটি উপাদান দৈর্ঘ্য 4 এ ডান সারিবদ্ধ করুন

ডিফল্ট এপিএল প্রিন্ট রুটিন সঠিক কাজ করে।

      {¯4↑¨(⍵⊥⍣¯1¨∘.×⍨1+⍳⍵)⊃¨¨⊂⊂⎕D,⎕A}13
    1     2     3     4     5     6     7     8     9     A     B     C    10 
    2     4     6     8     A     C    11    13    15    17    19    1B    20 
    3     6     9     C    12    15    18    1B    21    24    27    2A    30 
    4     8     C    13    17    1B    22    26    2A    31    35    39    40 
    5     A    12    17    1C    24    29    31    36    3B    43    48    50 
    6     C    15    1B    24    2A    33    39    42    48    51    57    60 
    7    11    18    22    29    33    3A    44    4B    55    5C    66    70 
    8    13    1B    26    31    39    44    4C    57    62    6A    75    80 
    9    15    21    2A    36    42    4B    57    63    6C    78    84    90 
    A    17    24    31    3B    48    55    62    6C    79    86    93    A0 
    B    19    27    35    43    51    5C    6A    78    86    94    A2    B0 
    C    1B    2A    39    48    57    66    75    84    93    A2    B1    C0 
   10    20    30    40    50    60    70    80    90    A0    B0    C0   100 

–1:{¯4↑¨⊃∘(⎕D,⎕A)¨¨⍵⊥⍣¯1¨∘.×⍨1+⍳⍵}
অ্যাডম

"অক্ষর" এর পরিবর্তে আপনার মেটা কোডেগল্ফ.স্ট্যাককেেক্সচেঞ্জ / আ / 4৪৯৯ / ৪৩৩১৯ লিঙ্কের সাথে "বাইটস" ব্যবহার করা উচিত ।
অ্যাডম

1

রুবি, 69 66 টি অক্ষর - 20% = 52.8

->n{(r=1..n).map{|a|puts r.map{|b|"%4s"%(a*b).to_s(n).upcase}*''}}

নমুনা রান:

2.1.5 :001 > ->n{(r=1..n).map{|a|puts r.map{|b|"%4s"%(a*b).to_s(n).upcase}*''}}[4]
   1   2   3  10
   2  10  12  20
   3  12  21  30
  10  20  30 100

1

ksh93, 51 * 0.8 == 40.8 বাইট

eval echo "'
' {"{1..$1}'..$((++n*$1))..$n%3..$1d}'

এটি বেস 64 পর্যন্ত কাজ করা উচিত (কেএসএস দ্বারা সমর্থিত বৃহত্তম রেডিক্স)। উদাহরণ:

 $ n= ksh -s 12 <<\EOF
eval echo "'
' {"{1..$1}'..$((++n*$1))..$n%3..$1d}'
EOF


   1   2   3   4   5   6   7   8   9   a   b  10
   2   4   6   8   a  10  12  14  16  18  1a  20
   3   6   9  10  13  16  19  20  23  26  29  30
   4   8  10  14  18  20  24  28  30  34  38  40
   5   a  13  18  21  26  2b  34  39  42  47  50
   6  10  16  20  26  30  36  40  46  50  56  60
   7  12  19  24  2b  36  41  48  53  5a  65  70
   8  14  20  28  34  40  48  54  60  68  74  80
   9  16  23  30  39  46  53  60  69  76  83  90
   a  18  26  34  42  50  5a  68  76  84  92  a0
   b  1a  29  38  47  56  65  74  83  92  a1  b0
  10  20  30  40  50  60  70  80  90  a0  b0 100

 $ n= ksh -s 22 <<\EOF
eval echo "'
' {"{1..$1}'..$((++n*$1))..$n%3..$1d}'
EOF


   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f   g   h   i   j   k   l  10
   2   4   6   8   a   c   e   g   i   k  10  12  14  16  18  1a  1c  1e  1g  1i  1k  20
   3   6   9   c   f   i   l  12  15  18  1b  1e  1h  1k  21  24  27  2a  2d  2g  2j  30
   4   8   c   g   k  12  16  1a  1e  1i  20  24  28  2c  2g  2k  32  36  3a  3e  3i  40
   5   a   f   k  13  18  1d  1i  21  26  2b  2g  2l  34  39  3e  3j  42  47  4c  4h  50
   6   c   i  12  18  1e  1k  24  2a  2g  30  36  3c  3i  42  48  4e  4k  54  5a  5g  60
   7   e   l  16  1d  1k  25  2c  2j  34  3b  3i  43  4a  4h  52  59  5g  61  68  6f  70
   8   g  12  1a  1i  24  2c  2k  36  3e  40  48  4g  52  5a  5i  64  6c  6k  76  7e  80
   9   i  15  1e  21  2a  2j  36  3f  42  4b  4k  57  5g  63  6c  6l  78  7h  84  8d  90
   a   k  18  1i  26  2g  34  3e  42  4c  50  5a  5k  68  6i  76  7g  84  8e  92  9c  a0
   b  10  1b  20  2b  30  3b  40  4b  50  5b  60  6b  70  7b  80  8b  90  9b  a0  ab  b0
   c  12  1e  24  2g  36  3i  48  4k  5a  60  6c  72  7e  84  8g  96  9i  a8  ak  ba  c0
   d  14  1h  28  2l  3c  43  4g  57  5k  6b  72  7f  86  8j  9a  a1  ae  b5  bi  c9  d0
   e  16  1k  2c  34  3i  4a  52  5g  68  70  7e  86  8k  9c  a4  ai  ba  c2  cg  d8  e0
   f  18  21  2g  39  42  4h  5a  63  6i  7b  84  8j  9c  a5  ak  bd  c6  cl  de  e7  f0
   g  1a  24  2k  3e  48  52  5i  6c  76  80  8g  9a  a4  ak  be  c8  d2  di  ec  f6  g0
   h  1c  27  32  3j  4e  59  64  6l  7g  8b  96  a1  ai  bd  c8  d3  dk  ef  fa  g5  h0
   i  1e  2a  36  42  4k  5g  6c  78  84  90  9i  ae  ba  c6  d2  dk  eg  fc  g8  h4  i0
   j  1g  2d  3a  47  54  61  6k  7h  8e  9b  a8  b5  c2  cl  di  ef  fc  g9  h6  i3  j0
   k  1i  2g  3e  4c  5a  68  76  84  92  a0  ak  bi  cg  de  ec  fa  g8  h6  i4  j2  k0
   l  1k  2j  3i  4h  5g  6f  7e  8d  9c  ab  ba  c9  d8  e7  f6  g5  h4  i3  j2  k1  l0
  10  20  30  40  50  60  70  80  90  a0  b0  c0  d0  e0  f0  g0  h0  i0  j0  k0  l0 100

0

পাইকে, 14 বাইট * 0.8 = 11.2 বাইট, অ-প্রতিযোগিতামূলক

QhD]UA*MbQMl2P

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

ব্যাখ্যা:

            - autoassign Q = eval_or_not_input()
QhD]        - [Q+1, Q+1]
    U       - nd_range(^)
     A*     - apply(*, ^)
       MbQ  - map(base(Q), ^)
          Ml2 - map(lower, ^)
          P - print_grid(^)

অথবা বোনাস ছাড়াই 12 বাইট

13D]UA*Mb12P

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