সংক্ষিপ্ত কোণে ঘোরানো * এর সাথে এন-স্কোয়ার পূর্ণসংখ্যার উত্পাদন করুন


9

উদ্দেশ্য র্যান্ডম পূর্ণসংখ্যার আউটপুট উত্পাদন এন স্কোয়ার (nxn) (হয় 0-9একটি চলমান সঙ্গে) *যে rotates ঘড়ির কাঁটার দিকে প্রায় কোণে, শীর্ষ বাঁ দিক থেকে শুরু। স্কোয়ারগুলি পাশাপাশি থাকা উচিত এবং একক স্থান দ্বারা পৃথক করা উচিত।

যদি n = 0, আউটপুট খালি থাকে।

এর জন্য আউটপুট n=1:

*

এর জন্য আউটপুট n=2:

*3 4*
14 07

এর জন্য আউটপুট n=3:

*34 82* 291
453 224 924
145 158 57*

এর জন্য আউটপুট n=4:

*153 135* 0154 0235
2352 5604 3602 2065
2245 6895 3561 7105
7225 5785 479* *662

*বাম থেকে ডানে, বাম দিক থেকে ডানে কীভাবে (স্কোয়ারের কোণগুলির চারপাশে) আবর্তিত হয় তা লক্ষ্য করুন : উপরের বাম, উপরের ডান, নীচে ডান, নীচে বাম, উপরের বাম, ইত্যাদি (ঘড়ির কাঁটার দিক)

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

সংক্ষিপ্ত উত্তর (বাইটগুলিতে পরিমাপ করা) জিতেছে।


5
দয়া করে আমাকে এটি বুঝতে সাহায্য করুন
রোহান ঝুনঝুনওয়ালা

1
পুনরায় খুলতে ভোট। এটি আমার কাছে সম্পূর্ণ পরিষ্কার clear কিছু ছোটখাটো সম্পাদনা করেছেন। ("নিখুঁত বর্গক্ষেত্র" আমার কাছে বীজগণিত শব্দের মতো খুব বেশি লাগছিল)
স্তর নদী

2
এলোমেলো সংখ্যাগুলি কীভাবে "এলোমেলো" হওয়া দরকার? সংখ্যাটি ঠিক অঙ্কগুলি হিসাবে গণনা করে, সংখ্যাটি হ'ল এন অঙ্কের দীর্ঘ হওয়া দরকার এই বিষয়ে আপনার প্রশ্নেও এটি স্পষ্টভাবে সম্ভবত মূল্যবান।
জেসি আমানো

1
<শ্রাগ> সম্ভবত আমি ধীর হয়ে যাচ্ছি, তবে এটি এখনও আমার কাছে অস্পষ্ট। আপনি উদাহরণস্বরূপ *এর গুলি স্থাপন ব্যাখ্যা করতে পারেন n=4? সম্ভবত আরও কিছু উদাহরণ দেবেন?
ডিজিটাল ট্রমা

2
@ ডিজিটালট্রামা আমি যতক্ষণ না বুঝতে পেরেছি যে আপনি একটি "ঘড়ি" প্রিন্ট করছেন না, আমি তখনও তা বের করতে পারছি না (আপনি পাশাপাশি পাশাপাশি এন ক্লকগুলি প্রিন্ট করছেন) (যা প্রশ্ন থেকে মোটেও পরিষ্কার ছিল না)। সুতরাং এন = 4 উদাহরণে, আপনি চারটি "ঘড়ি" দেখতে পাবেন - প্রথম শীর্ষ সারির সাথে *153, দ্বিতীয়টি শীর্ষ সারির সাথে *135এবং এই জাতীয়।
জর্ডান

উত্তর:


4

05 এ বি 1 ই , 50 49 বাইট

3mF9Ý.R}J¹ô¹ävy`¦'*ìN4%©>ir}®iRr}®<iR})ˆ}¯øvyðý}»

ব্যাখ্যা

ইনপুট = 4 এর উদাহরণ।

প্রথমে আমরা 0 এবং 9 এর মধ্যে ইনপুট ^ 3 এলোমেলো সংখ্যার একটি স্ট্রিং তৈরি করি।

3mF9Ý.R}J

আবহ

6799762549425893341317984133999075245812305412010122884262903656

তারপরে আমরা প্রতিটি প্রতিটি ইনপুট আকারকে টুকরো টুকরো করে রাখি।
এটি আরও ইনপুট টুকরা বিভক্ত।

¹ô¹ä

এটি আমাদের সংখ্যার ম্যাট্রিক্স দেয়।

[['6799', '7625', '4942', '5893'], 
 ['3413', '1798', '4133', '9990'], 
 ['7524', '5812', '3054', '1201'], 
 ['0122', '8842', '6290', '3656']]

তারপরে আমরা ম্যাট্রিক্সের সারিগুলিতে লুপ করব, সঠিক স্থানে অ্যাসিরিস্কগুলি .োকাচ্ছি।

v                          } # for each row in matrix 
 y`                          # flatten list to stack
   ¦'*ì                      # replace the first digit of the last number with "*"
       N4%©>ir}              # if row-nr % 4 == 0, move the number with "*" to the front
               ®iRr}         # if row-nr % 4 == 1, move the number with "*" to the front
                             # and reverse the number, moving "*" to the numbers right side
                    ®<iR}    # if row-nr % 4 == 2, reverse the number, moving "*" 
                             # to the numbers right side
                         )ˆ  # wrap row in a list and add to global array

এখন আমাদের প্রতিটি সারিতে একটি "*" সহ ম্যাট্রিক্স রয়েছে তবে আমরা প্রতি কলামে একটি নক্ষত্র চাই।

[['*893', '4942', '7625', '6799'], 
 ['099*', '4133', '1798', '3413'], 
 ['7524', '5812', '3054', '102*'], 
 ['0122', '8842', '6290', '*656']]

সুতরাং আমরা এই তালিকাটি সারিগুলিকে কলামগুলিতে পরিণত করে এবং তদ্বিপরীতভাবে জিপ করি।

[['*893', '099*', '7524', '0122'], 
 ['4942', '4133', '5812', '8842'], 
 ['7625', '1798', '3054', '6290'], 
 ['6799', '3413', '102*', '*656']]

এখন যা আছে তা আউটপুট ফর্ম্যাট করা।

vyðý}»

নতুন লাইনের ফাঁকে ফাঁকে সারি এবং কলামগুলিতে যোগ দেওয়া আমাদের চূড়ান্ত ফলাফল দেয়।

*893 099* 7524 0122
4942 4133 5812 8842
7625 1798 3054 6290
6799 3413 102* *656

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

পুরানো 50 বাইট সমাধান

F¹Fõ¹F9Ý.R«}}¦'*ì})¹ävyN4%©>iR}®iíÁ}®<ií}})øvyðý}»

4

ডায়ালগ এপিএল , 57 বাইট

প্রয়োজন ⎕IO←0অনেক সিস্টেমে পূর্বনির্ধারিত।

ওপির প্রথম উদাহরণ অনুসারে, ডাবল-স্পেসিংয়ের অনুমতি রয়েছে।

{A←⊃∘⍕¨?10⍴⍨3⍴⍵⋄A[(⍳⍵),¨⍵⍴2↑¨1⍵(⍵ ⍵)(1⍵)-1]←'*'⋄⍉⎕FMT A}

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

অ-প্রতিযোগিতামূলক 49-বাইট সমাধান (ডায়ালগ এপিএল 16.0):

{⍉⎕FMT'*'@((⍳⍵),¨⍵⍴2↑¨1⍵(⍵ ⍵)(1⍵)-1)⊃∘⍕¨?10⍴⍨3⍴⍵}

3

জাভা 7, 372 370 366 বাইট

String c(int i){String s="*",a[][]=new String[i][i],t,r="";int j=0,k,z=i-1,m=(int)Math.pow(10,z);for(;j<i;j++)for(k=0;k<i;a[j][k++]=(new java.util.Random().nextInt((int)Math.pow(10,i)-m+1)+m)+"");for(j=0;j<i;k=j%4,t=a[m=k<2?0:z][k],a[m][j++]=k<1|k>2?s+t.substring(1,i):t.substring(0,z)+s);for(j=0;j<i;j++,r+="\n")for(k=0;k<i;r+=a[j][k++]+" ");return i<1?"":i<2?s:r;}

তারা একে অপরের পরিবর্তে অ্যাসিটার্কস রেখে এবং একই সময়ে আউটপুট তৈরি করে সম্ভবত আরও কিছু গল্ফ করা যেতে পারে।

অবরুদ্ধ এবং পরীক্ষার কোড:

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

class M{
  static String c(int i){
    String s = "*",
           a[][] = new String[i][i],
           t,
           r = "";
    int j = 0,
        k,
        z = i-1,
        m = (int)Math.pow(10, z);
    for(; j < i; j++){
      for(k = 0; k < i; a[j][k++] = (new java.util.Random().nextInt((int)Math.pow(10, i) - m + 1) + m)+"");
    }
    for(j = 0; j < i; k = j % 4,
                      t = a[m = k < 2 ? 0 : z][k],
                      a[m][j++] = k < 1 | k > 2
                                   ? s + t.substring(1, i)
                                   : t.substring(0, z) + s);

    for(j = 0; j < i; j++,
                      r += "\n"){
      for(k = 0; k < i; r += a[j][k++] + " ");
    }
    return i < 1
            ? ""
            : i < 2
               ? s
               : r;
  }

  public static void main(String[] a){
    for (int i = 0; i < 6; i++) {
      System.out.println(c(i));
      System.out.println();
    }
  }
}

সম্ভাব্য আউটপুট:

(empty)

*

*9 4* 
92 47 


*25 55* 754 
910 197 108 
635 439 35* 


*512 407* 9646 5017 
1663 3847 9772 3149 
7796 2997 5494 1362 
7283 9720 242* *539 


*0726 7743* 52096 50958 *0726 
60322 20914 76387 92716 41579 
89994 18781 33379 84189 31777 
11781 89323 12180 51814 63536 
58411 32935 5168* *6597 43216 

1

পিএইচপি, 181 বাইট

for($i=-1;++$i<$c=($n=$argv[1])**3;){echo!($i%$q=$n*$n)?"\n":((!$m=$i%$n)?" ":"");echo(!$m&!($b=$i%$q/$n&3)|$m==$n-1&$b==1)&$i<$q|($m==$n-1&$b==2|!$m&$b==3)&$i>$c-$q?"*":rand(0,9);}

আপনি কি এটি "অনলাইনে চেষ্টা করে দেখুন!" - এর সংস্করণ তৈরি করতে পারেন?
ফরওয়ার্ডিং

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