গোঁড়া ধাপ


26

2 ডি ম্যাট্রিক্সে নেভিগেট করা একটি সাধারণ সমস্যা। আমরা এটি অনেক বার দেখেছি এবং আবারও দেখতে পাব। সুতরাং আসুন আমাদের ভবিষ্যতে আমাদের সহায়তা করুন এবং 2 ডি ম্যাট্রিক্সে আটটি সম্ভাব্য পদক্ষেপ উত্পন্ন করতে সংক্ষিপ্ত সমাধানগুলি বিকাশ করুন।

চ্যালেঞ্জ

আপনার কোডটি অবশ্যই কোনও ক্রমে নিম্নলিখিত নম্বরটি -1,0,1 এর আউটপুট দিতে হবে:

(0,1)
(0,-1)
(1,0)
(-1,0)
(1,1)
(1,-1)
(-1,1)
(-1,-1)

বিধি

  1. কোনও ইনপুট নেই।
  2. আউটপুট ক্রম প্রাসঙ্গিক নয়
  3. আউটপুট নমনীয়। সংখ্যার জোড়গুলি কেবল আলাদা করার প্রয়োজন
  4. এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর

2
@ মার্টিনএন্ডারও আমি সে সম্পর্কে 99% নিশ্চিত ছিলাম, কিন্তু একটিও পাইনি। তাই আমি এটি কয়েক দিনের জন্য স্যান্ডবক্সে রেখেছি, তবে নকল সম্পর্কে কোনও মন্তব্য করেননি।
ডেড পসুম

4
নমনীয় আউটপুটের কারণে, এটির মধ্যে একটি আকর্ষণীয় কলমোগোরভ জটিলতার স্বাদ হিসাবে দেখা যায়। কিছু ভাষায় আউটপুটকে হার্ড কোডিংয়ের চেয়ে আরও ভাল কাজ করা কঠিন বলে মনে করবে find এই ট্যাগ যুক্ত করা উচিত?
এনজিএম

1
@ অ্যাডাম হ্যাঁ, সংখ্যার জোড়া পার্থক্য করার সময় কোনও কিছু ব্যবহার করুন
মৃত পসসাম

1
@ অ্যাডম তবে কি হবে (1 + 0i)?
ডেড পসসাম

8
এটি 8 সংলগ্ন স্কোয়ারের হুবহু নকল, আমি প্রথম কোড গল্ফগুলির মধ্যে একটি।
isaacg

উত্তর:


19

অক্টাভা , 24 বাইট

dec2base([0:3,5:8],3)-49

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

আমি এই পন্থা এখনও দেখিনি।

পূর্ণসংখ্যার একটি তালিকা তৈরি করে [0, 1, 2, 3, 5, 6, 7, 8]এবং এটি অক্ষত রূপান্তর করে, অক্ষরের অ্যারে ফিরিয়ে দেয়:

00
01
02
10
12
20
21
22

সমস্ত অক্ষর থেকে বিয়োগ 49(ASCII- মান 1) একটি সংখ্যার অ্যারে দেয়:

-1  -1
-1   0
-1   1
 0  -1
 0   1
 1  -1
 1   0
 1   1

9

টি-এসকিউএল, 80 78 বাইট

SELECT-1n INTO t;INSERT t VALUES(0),(1)SELECT*FROM t,t z WHERE t.n<>0OR z.n<>0

একটি (স্থায়ী) টেবিল তৈরি করে টি ধারণকারী (-1,0,1)একটি সঙ্গে একটি স্ব-যোগ, এবং সঞ্চালিত WHEREদফা যে বাদ 0,0সারি। টেবিল টি আমার কোড দ্বারা পরিষ্কার করা হয়নি, আপনাকে এটি নিজেই ফেলে দিতে হবে।

দুঃখজনকভাবে বোরিং সলিউশন ( 44 বাইট ) হিসাবে প্রায় দ্বিগুণ দীর্ঘ , যেহেতু এসকিউএল স্ট্রিংগুলিতে ফিরে আসতে দেয়:

PRINT'0,1
0,-1
1,0
-1,0
1,1
1,-1
-1,1
-1,-1'

আমি টি-এসকিউএলকে এত ভাল জানি না: আপনি কি কেবল ব্যবহার করতে পারবেন WHERE t.n OR z.n? (আপনি
কিছুতে

@ এমএস 210 ভাল ধারণা, আমি এটি চেষ্টা করেছি তবে এমএস এসকিউএল সার্ভারে এটি কাজ করছে বলে মনে হচ্ছে না। আমি ত্রুটিটি An expression of non-boolean type specified in a context where a condition is expected
পেয়েছি


8

খাঁটি বাশ (কোনও বাহ্যিক উপযোগ নেই), 36

a=({0,-1,1},{0,-1,1})
echo ${a[@]:1}

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


শেডের সাথে বাশ , 35

printf %s\\n {-1..1},{-1..1}|sed 5d

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


বিকল্পভাবেcut পাশাপাশি 36 বাইট ব্যবহার করে ।
4


printf %s\\n {-1..1},{-1..1}|grep 1এছাড়াও 35.
নিল


7

জেলি , 8 7 6 বাইট

3p_2ẸƇ

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

আমার প্রথম জেলি উত্তর! ধাঁধাটির চূড়ান্ত টুকরো জন্য ডেনিসকে অনেক ধন্যবাদ।

এখন, দেখুন আমি এটি ব্যাখ্যা করতে পারি কিনা ... হ্যাঁ।

3p_2ẸƇ   Main program, takes no input.
3p       Product with Range 3, yields [[1,1], [1,2], [1,3], [2,1], [2,2], ...]
  _2     Decrement twice, vectorizes, yields [[-1,-1], [-1,0], [-1,1], [0,-1], ...]
    ẸƇ   Comb, removes those that contain only falsey values, the [0,0]
         Implicit output

-১ বাইট ধন্যবাদ এরিককে; মিস্টার এক্সকোডার এবং ডেনিসকে -1 বাইট ধন্যবাদ


1
এই পদ্ধতির উপর ভিত্তি করে উত্তর পরিবর্তন করুন:3p3_2ẸƇ
মিস্টার এক্সকোডার

@ মিঃ এক্সকোডার আপনি দ্বিতীয়টি ড্রপ করতে পারেন 3
ডেনিস

@ ডেনিস ওহ, সত্যই। এই ক্ষেত্রে, অ্যাডম 6-বাইটারের সাথে আপডেট করতে পারে :)
মিঃ এক্সকডার

7

আর , 26 24 বাইট

প্রত্যক্ষ পদ্ধতির সাহায্যে আরও দুটি বাইট সংরক্ষণের জন্য @ জডোকে জমা দেওয়া:

paste(-1:1,-3:5%/%3)[-5]

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

মূল asnwer:

outer(-1:1,-1:1,paste)[-5]

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

বা 27 বাইট জন্য

sapply(-1:1,paste,-1:1)[-5]

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

অথবা 34 টি বাইটের জন্য কারণ সহ:

(gl(3,3,,-1:1):gl(3,1,9,-1:1))[-5]

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

এই শেষ সমাধানটি গল্ফিয়াস্ট হতে পারে যদি আউটপুট -1 থেকে 1 এর পরিবর্তে 1 থেকে 3 হয়।

বিকল্প সমাধানের সাথে বা সাথে সমাধানের জন্য অন্যান্য আর উত্তর দেখুন ।expand.gridcbind


হু, নমনীয় আউটপুট বিন্যাসের দুর্দান্ত ব্যবহার!
জিউসেপ

2
এটি চূড়ান্তভাবে অকেজো কারণ এটি আমার থেকে ভাল :) :)
এনজিএম

@ জিউসেপ মূলত আমি চেষ্টা করেছি cযা কোনও ম্যাট্রিক্সের মধ্যে বোঝা যায় নি তাই আমি সুইচ করেছিলাম pasteএবং আসল আউটপুট ফর্ম্যাটটি ...
জেসি

24 বাইট সহpaste
J.Doe

1
@ জে.ডো আপনি রক!
জয়সি

6

জাপট , 13 12 11 বাইট

@ শেগগিকে একটি বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে

9ó8_ìJõ é)Å

এটি অনলাইন চেষ্টা করুন! -Rপ্রতিটি আইটেমকে তার নিজস্ব লাইনে রাখতে পতাকা ব্যবহার করে।

ব্যাখ্যা

9ó8_ìJõ é)Å
9ó8             Create the range [9, 9+8). [9, 10, ..., 16]
   _            Map each item in this range through this function:
     Jõ é)        Generate the range [-1...1] and rotate to get [1, -1, 0].
    ì             Convert the item to an array of base-3 digits,
                  mapping [0,1,2] to [1,-1,0]. [[-1, 1, 1], [-1, 1,-1], [-1, 1, 0],
                                                [-1,-1, 1], [-1,-1,-1], [-1,-1, 0],
                                                [-1, 0, 1], [-1, 0,-1]]
          Å       Remove the first item (gets rid of the leading -1).

6

জাপট -Q , 15 13 বাইট

আমি নিশ্চিত যে আরও ছোট একটি উপায় আছে তবে আমি এই পদ্ধতিটি পছন্দ করেছি।

##ü80ì3 mÉ ò
##ü80        // Take 14425280
     ì3      // and turn it into an array of base-3 numbers.
        mÉ   // Subtract one from each digit
           ò // and then split them pairwise.

দুই কামিয়ে ধন্যবাদ বাইট রোমশ

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


6

হাস্কেল , 22 বাইট

_:l=mapM(:[1,-1])[0,0]

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

লাইকোনি 1 বাট বাঁচালেন।


_:l=mapM(:[1,-1])[0,0]একটি বাইট সংরক্ষণ করে। ( পূর্ববর্তী চ্যালেঞ্জের আইস্যাকের উত্তর থেকে নেওয়া )।
লাইকোনি

@ লাইকনি তাই আমি এটি বিবেচনা করেছি এবং ভেবেছিলাম যে এটি একটি স্নিপেট তৈরি করবে (পুরানো চ্যালেঞ্জের অনেক উত্তর ছিল)। তবে এই মেটা পোস্টটিকে এই নিয়মের সাথে সংযুক্ত করে যে ফাংশনগুলি পরোক্ষভাবে সংজ্ঞায়িত করা যায়, সুতরাং এটি ঠিক আছে বলে মনে হয়। পরামর্শের জন্য ধন্যবাদ.
xnor


5

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

2Ý<ãʒĀZ

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

ব্যাখ্যা

2Ý<     # Range of 2 decremented, yields [-1, 0, 1]
   ã    # Cartesian product of the list with itself
    ʒ   # Filter by ...
     ĀZ # Maximum of the truthified values, yields 0 only if both values are 0.

-1 বাইট ধন্যবাদ এমিগনাকে!


ডাং, তুমি আমাকে মারতে। একই সূচনা ছিল ( 2Ý<ã), তবে জোড়ার তালিকার মধ্যবর্তী উপাদানটি কীভাবে সরিয়ে ফেলা যায় তা নির্ধারণ করছিলেন .. পরম মান অনুসারে বাছাইয়ের এবং প্রথমটি আমার কাছ থেকে মুছে ফেলার কথা ভাবেন নি।
কেভিন ক্রুইজসেন

2
ʒĀZ1
Emigna 15:55

@ এমিগনা সত্যায়িত কমান্ডের নিয়মিত এবং 05AB1IE সংস্করণের মধ্যে আমাকে বুঝতে পারার জন্য ধন্যবাদ :-)
কলডো

5

এমএটিএল , 12 বাইট

9:q4X-3YA49-

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

এটি এমএটিএল মাস হওয়ার কারণে, এখানে @ স্টিওর অক্টাভ উত্তরের একটি এমএটিএল বন্দর রয়েছে। ক্রম [0 1 2 3 5 6 6 8 8] [0 ... 8] এবং 4 এর মধ্যে সেট পার্থক্য হিসাবে উত্পন্ন হয়।


5

জাভা 8, 83 42 বাইট

v->"1,1 1,0 1,-1 0,1 0,-1 -1,1 -1,0 -1,-1"

-১৪ বাইট হার্ড-কোডিং করে অ্যাডমবার্কবার্ককে ধন্যবাদ জানায় ..

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


উল্লেখ হিসাবে হার্ড-কোডেড সংস্করণ ( 83 72 70 68 বাইট ):

v->{for(int i=9;i-->1;)System.out.println(~i%3+1+","+(~(i/3)%3+1));}

-১১ বাইট @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।
-2 বাইটস @ETH প্রোডাকশনগুলির জাভাস্ক্রিপ্ট (ES6) উত্তরের একটি বন্দর তৈরি করে

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


72 বাইটে অ হার্ডকোডেড উত্তর: v->{for(int i=9;i-->0;)if(i!=4)System.out.println((i/3-1)+","+(i%3-1));}
অলিভিয়ার গ্রাগোয়ার

@ অলিভিগ্রগ্রোওরে ধন্যবাদ, যোগ হয়েছে (এবং আরও 2 বাইট দ্বারা গল্ফড)
কেভিন ক্রুইজসেন





4

কান্ড , 7 6 বাইট

বিভিন্ন উপায় রয়েছে (কৌতুকপূর্ণ / ব্যয়বহুল অংশটি মুক্তি পাচ্ছে [0,0]), 7 বাইট হ'ল সংক্ষিপ্ততম আমি ফিল্টার হিসাবে দশমিক রূপান্তর ( ) ব্যবহার করার জন্য নির্দেশ করার জন্য লিওর ধন্যবাদ জানাতে পারি d:

fdπ2ṡ1

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

ব্যাখ্যা

fdπ2ṡ1  -- constant function (expects no arguments)
    ṡ1  -- symmetric range [-n..n]: [-1,0,1]
  π2    -- cartesian power of 2: [[-1,-1],[-1,0],[0,-1],[-1,1],[0,0],[1,-1],[0,1],[1,0],[1,1]]
f       -- filter only elements that are truthy when
 d      -- | decimal conversion (interpret as polynomial and evaluate at x=10)
        -- : [[-1,-1],[-1,0],[0,-1],[-1,1],[1,-1],[0,1],[1,0],[1,1]]

বিকল্প, 7 বাইট

tπ2ṙ1ṡ1

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

ব্যাখ্যা

tπ2ṙ1ṡ1  -- constant function (expects no arguments)
     ṡ1  -- symmetric range [-n..n]: [-1,0,1]
   ṙ1    -- rotate by 1: [0,1,-1]
 π2      -- cartesian power of 2: [[0,0],[0,1],[1,0],[0,-1],[1,1],[-1,0],[1,-1],[-1,1],[-1,-1]]
t        -- tail: [[0,1],[1,0],[0,-1],[1,1],[-1,0],[1,-1],[-1,1],[-1,-1]]

1
অন্য 7 বাইট বিকল্প tπ2↑3İZ
লাইকনি

2
দশমিক রূপান্তরের ভিত্তিতে তালিকাগুলি ফিল্টার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন এটি চেষ্টা করুন অনলাইনে!
লিও

3

পাওয়ারশেল , 41 বাইট

(1..-1|%{$i=$_;1..-1|%{"$i,$_"}})-ne'0,0'

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

বহিরাগত এন্ট্রিটি বের করার জন্য প্রান্তের উপরে ডাবল-ফর লুপ 1..-1, একটি -nওটি eকোয়ালি সহ 0,0। এগুলি প্রত্যেকে পাইপলাইনে পৃথকভাবে ফেলে রাখা হয় এবং Write-outputপ্রোগ্রামের সমাপ্তিতে নিখরচায় আমাদের জন্য নিখরচায় নতুন লাইন দেয়।


দুঃখের বিষয়, কেবল বেয়ারবোনস স্ট্রিং আউটপুট দুটি বাইট সংক্ষিপ্ত:

'1,1
1,0
1,-1
0,1
0,-1
-1,1
-1,0
-1,-1'

কিন্তু এটি বিরক্তিকর।



3

বিয়োগটি টিআইওতে আন্ডারস্কোর হিসাবে প্রদর্শিত হবে কেন?
ডেড পসসাম 18

18 বাইট বিকল্প: echo }.>,{;~0 1 _1 টিআইও
গ্যালেন ইভানোভ 14'18

@ ডেড পসুম নেতিবাচক সংখ্যাগুলি জে
গ্যালেন ইভানোভ

1
হ্যাঁ, 17 :) echo}.>,{;~0 1 _1
গ্যালেন ইভানোভ 18

2
হয় echoপ্রয়োজন?
কোলে


3

বেফঞ্জ -৩৩ , ২৪ বাইট

11#v91090~9~19~<
9.._@#,

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

আমি মনে করি যে এই চ্যালেঞ্জটি 2 ডি ভাষা থেকে উত্তর হারিয়েছে, এমনকি বেশিরভাগ তির্যকভাবে সরানো না হলেও। এটি পৃথক পৃথক সংখ্যার আউটপুট দেয়, প্রতিটি জোড়া ট্যাব দ্বারা পৃথক।


3

এফ # (মনো) , 54 বাইট

let f=Seq.where((<>)(0,0))(Seq.allPairs[-1..1][-1..1])

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

44 বাইট - লাইকোনিকে ধন্যবাদ:

let f=Seq.tail(Seq.allPairs[0;-1;1][0;-1;1])

1
(0,0)প্রথম উপাদান হয়ে ফোন করে 44 বাইট Seq.tail: অনলাইনে চেষ্টা করে দেখুন!
লাইকনি


3

এমএটিএল , 12 বাইট

3:qq2Z^[]5Y(

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

আমার প্রথম গুরুতর এমএটিএল উত্তর! অনেক ধন্যবাদ লুইস Mendo , Sanchises এবং DJMcMayhem সাহায্যের জন্য।

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

3: qq2Z ^ [] 5Y (- সম্পূর্ণ প্রোগ্রাম ST স্টপআউট আউটপুট।
3: - পরিসীমা 3. [1 2 3] স্ট্যাকের দিকে ধাক্কা।
  কিউকিউ - ফলন ২. হ্রাস [[-১ 0 1]।
    2Z ^ - কার্টেসিয়ান শক্তি 2।
         5Y (- সূচী 5 এ সারিটি এর সাথে প্রতিস্থাপন করুন ...
       [] - একটি খালি ভেক্টর।

3

পার্ল 5 , 31 বাইট

map/1/&&say,<{-1,0,1},{-1,0,1}>

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


-1..1গ্লোব কাজ করবে ?
msh210

@ এমশ 210 দুর্ভাগ্যক্রমে নয় ... আমি এটি নিয়ে পরীক্ষা-নিরীক্ষা করেছি, এবং এটি কাজ করে bashতবে পার্লে নয় :(
ডম হেস্টিংস

3

বাশ , 30 বাইট

echo "
"{-1..1},{-1..1}|grep 1

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

প্রতিটি লাইনে শেষের স্থানটি মুদ্রণ করে। ( @ নীলকে ধন্যবাদ - এটি মূলত একটি শীর্ষস্থানীয় স্থান মুদ্রিত করেছে, তবে তাদের মন্তব্য অনুসারে একটি পূর্ববর্তী স্থান আরও ভাল)


আমার ধারণা আপনি বিকল্প হিসাবে শেষ পংক্তির বাইরেও সমস্তটিতে একটি পিছনের স্থান মুদ্রণ করতে পারবেন।
নীল

2

ব্যাচ, 77 বাইট

@for %%x in (-1 0 1)do @for %%y in (-1 0 1)do @if not %%x%%y==00 echo %%x %%y

যদি একটি মানহীন বিভাজককে অনুমতি দেওয়া হয় তবে 63 বাইট:

@for %%x in (-1/-1 -1/0 -1/1 0/-1 0/1 1/-1 1/0 1/1)do @echo %%x

2

পাইথ, 11 9 বাইট

t^+U2_1 2

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

ব্যাখ্যা

t^+U2_1 2
  +U2_1     [0, 1, -1]
 ^      2   Product with itself.
t           Exclude the first.

সমানভাবে, আমরা ব্যবহার করতে পারি t*J+U2_1J, তবে এটি কোনও ছোট নয়।

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