Z_n এর জন্য গ্রুপ সারণি তৈরি করুন


9

গোষ্ঠী গণিতের একটি বহুল ব্যবহৃত কাঠামো এবং কম্পিউটার বিজ্ঞানের প্রয়োগ রয়েছে। এই কোড চ্যালেঞ্জটি অ্যাডিটিভ গ্রুপ জেড এন এর জন্য একটি গ্রুপ সারণী তৈরি করতে স্বল্পতম অক্ষরের প্রায় ।

টেবিলটি কীভাবে তৈরি করা হয়: জেড এন এর জন্য উপাদানগুলি হ'ল , 0, 1, 2, ..., n-1}} টেবিলটিতে এন সারি এবং এন কলাম থাকবে। টেবিলের আইজ-তম প্রবেশের জন্য মান i + j মোড এন। উদাহরণস্বরূপ, জেড 3-এ , 1-2 তম এন্ট্রি (২ য় সারিতে, তৃতীয় কলামটি যদি আপনি প্রথম সারি / কলাম 1 হিসাবে গণনা করেন) হয় (1 + 2)% 3 = 0 (নমুনা আউটপুট দেখুন)।

ইনপুট: একটি ধনাত্মক পূর্ণসংখ্যা, এন

আউটপুট: একটি টেবিল যা জেড এন এর একটি পাঠ্য উপস্থাপনা, যা উপরে বর্ণিত হিসাবে নির্মিত হয়েছে, এবং নমুনা আউটপুটগুলিতে নীচে দেখানো হয়েছে। স্পেসগুলি .চ্ছিক

নমুনা ইনপুট: 3

নমুনা আউটপুট:

0 1 2
1 2 0
2 0 1

নমুনা ইনপুট: 5

নমুনা আউটপুট:

0 1 2 3 4
1 2 3 4 0
2 3 4 0 1
3 4 0 1 2
4 0 1 2 3

3
যেহেতু বিভাজক alচ্ছিক, তাই 10 এর উপরে একটি ইনপুট থাকবে?
জো কিং

উপর ভিত্তি করে @JoKing codegolf.stackexchange.com/questions/35038/... আমি হ্যাঁ অনুমান
qwr

উত্তর:


10

এপিএল (10)

(ধরে নিচ্ছি⎕IO=0 । এটি ডিফল্টরূপে এনজিএন / এপিএল এ কাজ করে , অন্যান্য এপিএলগুলির ⎕IO←0প্রথমে প্রবণতা প্রয়োজন ))

{⍵|∘.+⍨⍳⍵}

ব্যাখ্যা:

  • ⍳⍵: সংখ্যা [0..⍵)
  • ∘.+⍨: একটি টেবিল তৈরি করুন
  • ⍵|: টেবিলের সংখ্যা mod

1
আপনি কি করতে পারবেন ⊢|⍳∘.+⍳, বা ট্রেনগুলি জুলাই ২০১৪ এনজিওর সংস্করণে কাজ করে নি?
lirtosiast

3

গল্ফস্ক্রিপ্ট (১৩ টি চর)

ক্লডিউয়ের জবাব সম্পর্কে আপনার মন্তব্য থেকে আমি বুঝতে পারি যে একটি সারির উপাদানগুলির মধ্যে সাদা স্থান প্রয়োজন হয় না। যে বোঝার উপর:

~.,{.n\(+}@(*

অনলাইন ডেমো

ব্যবচ্ছেদ:

~        Parse the input into an integer
.,       Duplicate it, turn the second into an array [0,...,n-1]
{        Loop: top of stack is the previous row
  .n\    Push a newline and a copy of the previous row
  (+     Rotate the first element to the end to get the new row
}@(*     Perform loop n-1 times

যদি হোয়াইটস্পেস প্রয়োজন হয় তবে 20 টি অক্ষরের জন্য:

~.,{.(+}@(*]{' '*n}/

এগুলিতে খুব সুন্দর কাজ!
রায়ান

3

পাইথন 2, 66 বাইট

def f(n):R=range(n);exec"print''.join(map(str,R));R+=R.pop(0),;"*n

পপিং এবং পুনরায় সংযোজন করে তালিকাটি ঘোরান।

পাইথন 3, 53 বাইট

def f(n):*R,=range(n);[print(*R[i:]+R[:i])for i in R]

@ Mbomb007 হিসাবে একই পদ্ধতি ব্যবহার করে তবে printএকটি ফাংশন হিসাবে আপত্তিজনক ।


যে *R,=একটি বিজোড় কনস্ট্রাক্ট ... এটি শুধুমাত্র রূপান্তর করতে পরিবেশন করা না rangeএকটি tuple মধ্যে এর আউটপুট?
জোনাথন ফ্রেচ

আপনি কি পাইথন 3 কোডটি ব্যাখ্যা করতে পারেন? আমি*R
টারিট গোস্বামী

@taritgoswami এটি অবনমিত প্যাকিং হয় না; rangeএকটি পুনরাবৃত্তিযোগ্য অবজেক্ট যা কোনওটি আনপ্যাক এবং পুনরায় প্যাক করতে পারে, সমস্ত কিছু সংগ্রহ করে R। এটি সমতুল্য হওয়া উচিত R=list(range(n)), প্রাক্তনটি আরও সংক্ষিপ্ত হওয়া।
জোনাথন ফ্রেচ

3

05 এ বি 1 ই , 10 8 বাইট

ݨDδ+I%»

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

ব্যাখ্যা

         # Implicit input n = 3                  [3]
Ý        # Push range(0,3)                       [[0,1,2,3]]
 ¨       # Pop last element                      [[0,1,2]]
  D      # Duplicate                             [[0,1,2],[0,1,2]]
   δ     # Apply next operation double vectorized
    +    # Vectorized addition                   [[[0,1,2],[1,2,3],[2,3,4]]]
     I   # Push input                            [[[0,1,2],[1,2,3],[2,3,4]],3]
      %  # Elementwise modulo 3                  [[[0,1,2],[1,2,0],[2,0,1]]]
       » # " ".join(x) followed by newline       ["0 1 2\n1 2 0\n2 0 1\n"]
           for every x in list       

পূর্ববর্তী উত্তর: 10 বাইট

ݨDvDðý,À}

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

আমার 05AB1E এ গল্ফ করার প্রথম চেষ্টা।

পূর্ববর্তী উত্তর ব্যাখ্যা

           # Implicit input n = 3                   [3]
Ý          # Push range(0,3)                        [[0,1,2,3]]
 ¨         # Pop last element.                      [[0,1,2]]
  D        # Duplicate                              [[0,1,2],[0,1,2]]
   v     } # Pop list and loop through elements     [[0,1,2]]
    D      # Duplicate                              [[0,1,2],[0,1,2]]
     ð     # Push space char                        [[0,1,2],[0,1,2], " "]
      ý    # Pop list a and push string a.join(" ") [[0,1,2],"0 1 2"]
       ,   # Print string with trailing newline     [[0,1,2]] Print: "0 1 2"
        À  # Rotate list                            [[1,2,0]]  

1
প্রথম প্রথম উত্তর, এবং স্বাগত! এটি সংক্ষিপ্ত হতে পারে বলে আমার অনুভূতি রয়েছে তবে এখানে দুটি 9-বাইট বিকল্প রয়েছে: FݨN._ðý,এবং 05AB1E চ্যাটেݨsGDÀ})» যেকোন প্রশ্ন জিজ্ঞাসা করতে নির্দ্বিধায় অনুভব করুন এবং যদি আপনি এখনও না করেন তবে 05AB1E টিপ পৃষ্ঠাটি দেখুন । :)
কেভিন ক্রুইজসেন

ধন্যবাদ কেভিন ক্রুজসেন! দেখে মনে হচ্ছে আমি অন্তর্নিহিত ইনপুটটির সুবিধা নেওয়ার কোনও উপায় খুঁজতে ভুলে গেছি।
উইসোয়া


1

পাইথ , 16

JVQXQjdJ=J+tJ]hJ

সঠিক সাদা স্থানের সাথে টেবিলটি মুদ্রণ করে।

./pyth.py -c "JVQXQjdJ=J+tJ]hJ" <<< 5
0 1 2 3 4
1 2 3 4 0
2 3 4 0 1
3 4 0 1 2
4 0 1 2 3

ব্যাখ্যা:

                   Automatic: Q=eval(input())
JVQ                J = range(Q)
XQ                 repeat Q times
  jdJ              print J, joined on " "
  =J               J =
    +tJ]hJ             tail(J) + [head(J)] (J[1:] + [J[-1]]])

1

জে, 20

স্টাডিনের কাছ থেকে পড়া এবং একটি 2 ডি অ্যারে উত্পাদন করা (যা প্রশ্নের নমুনার মতোই রেন্ডার করে)।

(|+/~@i.)@".}:1!:1]3

কোনও স্ট্রিং নেওয়া কোনও ফাংশন যদি যথেষ্ট হয় (|+/~@i.)@".,। যদি কোনও ক্রিয়াকলাপ গ্রহণ করে এমন কোনও ফাংশন |+/~@i.যথেষ্ট হয়।

ব্যাখ্যা: f g জে (ফাংশনগুলির জন্য f, g) একটি "হুক" বোঝায়, যা একটি যৌগিক ফাংশন যা g (একটি unary ফাংশন) এর মাধ্যমে ইনপুট চালায় এবং তারপরে ইনপুট এবং f এর মাধ্যমে ফলাফলের ফলাফল (একটি বাইনারি ফাংশন)। উত্তরটি উপাদান |(মডুলাস) এবং এর সাথে একটি কাঁটাচামচ +/~@i.। তারপরের অংশটি হ'ল "টেবিল-অফ স্যামস সমন্বিত-তালিকাভুক্ত-সূচকগুলি-সহ" ( পাইথনের i.মতো কিছুটা range)।


আপনার উত্তরটি আপডেট করা উচিত |+/~@i., যা এখানে মানক নিয়মের দ্বারা গ্রহণযোগ্য হওয়া উচিত।
জোনা


1

পাইথন 2, 67

উভয় এখানে চেষ্টা করুন

আমি তালিকার বিভাজনটি তালিকার বারটিকে "আবর্তিত" করতে ব্যবহার করি n, প্রতিবার মুদ্রণ করে। (Rs 68 টি)

def f(n):
 l=range(n)
 for i in l:print''.join(map(str,l[i:]+l[:i]))

আমি এটি একটি অদ্ভুত কৌতুক দিয়ে উপরের তুলনায় একটি চরিত্রকে আরও ছোট করে পরিচালনা করতে পেরেছি। (Rs 67 টি)

def f(n):
 l=range(n)
 for i in l:print''.join(`l[i:]+l[:i]`)[1::3]

মনে হয় এই পদ্ধতি মত এখনও পাইথন 3 খাটো: def f(n):*R,=range(n);[print(*R[i:]+R[:i])for i in R]। আমি ভাবি নি স্প্ল্যাট আসলে পেরেন্স ছাড়া কাজ করবে।
Sp3000


1

x86-64 মেশিন কোড (লিনাক্স), 80 64 বাইট

0000000000000000 <zn_asm>:
   0:   6a 0a                   pushq  $0xa
   2:   89 f9                   mov    %edi,%ecx
   4:   ff c9                   dec    %ecx

0000000000000006 <zn_asm.l1>:
   6:   c6 06 0a                movb   $0xa,(%rsi)
   9:   48 ff ce                dec    %rsi
   c:   89 fb                   mov    %edi,%ebx
   e:   ff cb                   dec    %ebx

0000000000000010 <zn_asm.l2>:
  10:   89 c8                   mov    %ecx,%eax
  12:   01 d8                   add    %ebx,%eax
  14:   31 d2                   xor    %edx,%edx
  16:   f7 f7                   div    %edi
  18:   89 d0                   mov    %edx,%eax

000000000000001a <zn_asm.l3>:
  1a:   31 d2                   xor    %edx,%edx
  1c:   48 f7 34 24             divq   (%rsp)
  20:   83 c2 30                add    $0x30,%edx
  23:   88 16                   mov    %dl,(%rsi)
  25:   48 ff ce                dec    %rsi
  28:   85 c0                   test   %eax,%eax
  2a:   75 ee                   jne    1a <zn_asm.l3>
  2c:   ff cb                   dec    %ebx
  2e:   85 db                   test   %ebx,%ebx
  30:   7d de                   jge    10 <zn_asm.l2>
  32:   ff c9                   dec    %ecx
  34:   85 c9                   test   %ecx,%ecx
  36:   7d ce                   jge    6 <zn_asm.l1>
  38:   58                      pop    %rax
  39:   48 89 f0                mov    %rsi,%rax
  3c:   48 ff c0                inc    %rax
  3f:   c3                      retq

আমি আশা করছিলাম যে এই সমাধানটি এই পোস্টে থাকা আরও কয়েকটি জমাগুলিকে কিছুটা হারাতে সক্ষম হতে কয়েক বাইট সংক্ষিপ্ত হবে। আমি যদি রেজিস্ট্রিগুলির 32 বা 16 বিট সংস্করণগুলির কয়েকটি ব্যবহার করি তবে কয়েকটা বাইট বন্ধ করে দিতে পারি a অনেকগুলি রেজিস্টরকে 32 বিট ঠিকানার সংস্করণে সংরক্ষণ করা হয়েছে 16 বাইট সংরক্ষণ করা।

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

সমাবেশে সি ++ র‍্যাপার কোড এবং মন্তব্যগুলি দেখতে, আমার রেপো পরীক্ষা করে দেখুন ।


1

কে এক্স, ওয়াই থেকে শুরু করে?
রোজলুপি

@RosLuP matrix(m,n,X,Y,expr)একটি উত্পন্ন mXnমত প্রকাশের ম্যাট্রিক্স expr, সারি পরিবর্তনশীল Xথেকে যাচ্ছে 1করার mএবং কলাম পরিবর্তনশীল Yথেকে যাচ্ছে 1করার n
আলেফাল্ফ

1

ম্যাথগল্ফ , 10 8 বাইট

r░y\Åo╫;

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

-2 বাইট জো কিংকে ধন্যবাদ জানায়

ব্যাখ্যা

আমি 3ব্যাখ্যার জন্য উদাহরণ ইনপুট ব্যবহার করব

r          range(0, n) ([0, 1, 2])
 ░         convert to string (implicit map) (['0', '1', '2'])
  y        join array without separator to string or number ('012')
   \       swap top elements ('012', 3)
    Å      start block of length 2 (for-loop, loops 3 times ('012'))
     o     print TOS without popping
      ╫    left-rotate bits in int, list/str ('012' => '120' => '201' => '012')
       ;   discard TOS (prevents final print)

আপনি এটিও করতে পারেন r░y\(Åo╫, যা লুপের সংখ্যা 1 দ্বারা হ্রাস করে এবং লুপের পরে বাতিলকরণ এড়িয়ে যায়।



@ জোকিং যে চালাক! সম্ভবত আপনি qসদৃশ অপসারণ করতে ব্যবহার করতে পারেন?
ম্যাক্সবি

আমি বলতে চাইছি o। সেরা আমি জিনিসটা পারে উপায় ছিল যে এই । এটি 10 ​​বাইটও হতে পারে তবে আমি মোবাইলে।
ম্যাক্সবি

যেহেতু বিভাজক
জো কিং

0

সি - 96

void g(int k){int i;for(i=0;i<k*k;i++){if(i&&!(i%k))puts("\n");printf("%i ",((i/k)+(i%k))%k);}}

0

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

একটি মারাত্মক অলস কাজ।

~:j,{:x;j,{x+j%}%n}/

এটি এখানে চালান । (প্রথম লাইন স্টিডিন অনুকরণ করা হয়)।

ব্যাখ্যা :

~                     # evaluate input (turn string "5" into number 5)
:j                    # store into variable j
,                     # turn top of stack into range(top), e.g. 5 --> [0, 1, 2, 3, 4]
{...}/                # for each element in the array... 
  :x;                 # store the element into x and pop from the stack
  j,                  # put range(j) on the stack ([0, 1, 2, 3, 4] again)
  {...}%              # map the array with the following:
      x+j%            # add x and mod the resulting sum by j
  n                   # put a newline on the stack

প্রোগ্রামটি শেষ হয়ে গেলে, স্ট্যাকের মধ্যে প্রতিটি অ্যারে তাদের মধ্যে নতুন লাইনের সাথে থাকে। দোভাষীর স্ট্যাকের মধ্যে যা রয়েছে তা আউটপুট দেয়, পছন্দসই ফলাফল দেয়।


1
নিস! যদিও উপাদানগুলির মধ্যে ফাঁকা স্থানগুলি প্রয়োজনীয় ছিল না, তবে যখন আমাদের কাছে মান> = 10 (যেমন যখন এন> = 11) থাকে তখন এটি সহায়ক হতে পারে।
রায়ান

আপনি কি আপনার কোডটি ব্যাখ্যা করতে পারেন? আমার কাছে গল্ফস্ক্রিপ্ট পড়া অন্য কারও রেজেক্স পড়ার চেয়ে খারাপ। (প্রায় =)
flawr

@ ফ্লোয়ার: হ্যাঁ নিশ্চিত, এটি বেশ সোজা
ক্লোদিয়

0

সিজেম, 14 টি অক্ষর

l~_)_@,*/Wf<N*

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

ব্যাখ্যা

ধারণাটি হ'ল স্ট্রিংটি থেকে আবার 0করা N-1, কিন্তু এটির ব্লকগুলিতে বিভক্ত N+1। এই অমিলটি প্রতিবার বামে সারিটি স্থানান্তর করে। শেষ অবধি, আমাদের বহিরাগত চরিত্র থেকে মুক্তি এবং নতুন লাইনের সাথে সমস্ত কিছুতে যোগদান করা দরকার।

এখানে বিস্ফোরিত কোড, ইনপুট জন্য স্ট্যাক সামগ্রী সহ 3

l~              "Read and eval input."; [3]
  _             "Duplicate.";           [3 3]
   )            "Increment.";           [3 4]
    _           "Duplicate.";           [3 4 4]
     @          "Rotate.";              [4 4 3]
      ,         "Get range.";           [4 4 [0 1 2]]
       *        "Repeat.";              [4 [0 1 2 0 1 2 0 1 2 0 1 2]
        /       "Split.";               [[[0 1 2 0] [1 2 0 1] [2 0 1 2]]
         Wf<    "Truncate each line.";  [[[0 1 2] [1 2 0] [2 0 1]]
            N*  "Join with newlines.";  ["012
                                          120
                                          201"]

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

বিকল্পভাবে, 11 টি অক্ষর

সাম্প্রতিক সংযোজন ew(এটি চ্যালেঞ্জের চেয়ে নতুন - এটি প্রদত্ত দৈর্ঘ্যের সমস্ত ওভারল্যাপিং সাবস্ট্রিংগুলি ফিরিয়ে দেয়), কেউ 11 বাইট করতে পারে:

l~,2*))ewN*

এখানে এটি কীভাবে কাজ করে:

l~           "Read and eval input."; [3]
  ,          "Get range.";           [[0 1 2]]
   2*        "Repeat twice.";        [[0 1 2 0 1 2]]
     )       "Pop last.";            [[0 1 2 0 1] 2]
      )      "Increment.";           [[0 1 2 0 1] 3]
       ew    "Get substrings.";      [[[0 1 2] [1 2 0] [2 0 1]]
         N*  "Join with newlines.";  ["012
                                       120
                                       201"]

বিকল্প 14 বাইট: l~_,\{_(+N\}*;। আমি ভাবছি যদি আমরা আরো ভালো করতে পারে এই যদিও।
Sp3000

হ্যাঁ তবে এটি মূলত পিটারের উত্তরের একটি বন্দর, এবং আমি ভেবেছিলাম আমি বরং একটি ভিন্ন পদ্ধতি উপস্থাপন করব। ewকাজ করতে পারে তবে চ্যালেঞ্জের চেয়ে নতুন er
মার্টিন ইন্ডার


0

এক্সেল ভিবিএ, 77 বাইট

বেনামে VBE তাত্ক্ষণিক উইন্ডো ফাংশন যা ইনপুট নেয়, পূর্ণসংখ্যা হিসাবে, এন, ব্যাপ্তি থেকে পরিসীমা থেকে [A1]আউটপুট নেয় A2.Resize(n,n)

[A2:IU255]="=IF(MAX(ROW()-1,COLUMN())-1<$A$1,MOD(ROW()+COLUMN()-3,$A$1),"""")

0

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

{.rotate(.all).put}o|^*

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

বেনামি কোড ব্লক যা একটি নম্বর নেয় এবং স্থানগুলির সাথে প্রদত্ত বিন্যাসে ম্যাট্রিক্স প্রিন্ট করে। এর পরিবর্তে আমরা যদি কিছু ফিরিয়ে দিতে .putপারি তবে তা অপসারণ করা যায়।

ব্যাখ্যা:

                   o|^*    # Transform the input into the range 0..input-1
{                 }        # And pass it into the function
 .rotate                   # Rotate the range by
        (.all)             # Each of the range
              .put         # And print each of them separated by spaces

0

কাঠকয়লা , 13 বাইট

NθEθ⪫Eθ﹪⁺ιλθ 

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। দ্রষ্টব্য: ট্রেলিং স্পেস ব্যাখ্যা:

Nθ              Input `n` as a number into variable
   θ            `n`
  E             Map over implicit range
      θ         `n`
     E          Map over implicit range
         ι      Current row
        ⁺       Plus
          λ     Current column
       ﹪        Modulo
           θ    `n`
    ⪫           Cast row to string and join with spaces
                Implicitly print each row on its own line

0

এপিএল (এনএআরএস), 15 টি চর, 30 বাইট

{⊃{⍵⌽k}¨k←0..⍵}

পরীক্ষা:

  f←{⊃{⍵⌽k}¨k←0..⍵}
  f 4
0 1 2 3 4
1 2 3 4 0
2 3 4 0 1
3 4 0 1 2
4 0 1 2 3
  f 3
0 1 2 3
1 2 3 0
2 3 0 1
3 0 1 2
  f 2
0 1 2
1 2 0
2 0 1
  f 1
0 1
1 0
  f 0
0 

এখানে ভাষার কোনও মন্তব্য করার দরকার নেই ...


0

জাপট -R, 5 বাইট

ÆZéXn

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

বিভাজক হিসাবে যদি কমা ব্যবহার করা বৈধ না হয় তবে কোনও বিভাজকের জন্য বাইট যুক্ত করুন:

ÆZ¬éXn

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

বা একটি স্থান ব্যবহার করতে 2 বাইট:

ÆZéXn)¸

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


0

আর , 37 বাইট

sapply(x<-1:scan()-1,`+`,x)%%sum(x|1)

0 থেকে এন -1 পর্যন্ত একটি ভেক্টর তৈরি করে এবং ধারাবাহিকভাবে 1, তারপরে 2 ... তারপর এন যোগ করে এবং ভ্যাটরের দৈর্ঘ্য দ্বারা ম্যাট্রিক্সকে সংশোধন করে, যা এন।

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


0

ফোরথ (গফার্থ) , 53 বাইট

: f dup 0 do cr dup 0 do i j + over mod . loop loop ;

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

ব্যাখ্যা

নেস্টেড লুপ যা প্রতিটি এন সংখ্যাগুলিতে একটি নতুন লাইন আউটপুট করে

কোড ব্যাখ্যা

: f             \ start new word definition
  dup 0 do      \ set loop parameters and loop from 0 to n-1
    cr          \ output a newline
    dup 0 do    \ loop from 0 to n-1 again
      i j +     \ get the sum of the row and column number
      over mod  \ modulo with n
      .         \ print (with space)
    loop        \ end inner loop
  loop          \ end outer loop
;               \ end word definition
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.