জাদু জড়ো: বন্ধু না শত্রু?


67

কার্ড গেমটিতে ম্যাজিক: জমায়েত করার জন্য পাঁচটি আলাদা রঙ রয়েছে যা কার্ডের looseিলে .ালা সম্পর্কিত, সাদা ( W), নীল ( U), কালো ( B), লাল ( R) এবং সবুজ ( G) উপস্থাপন করে। এগুলি প্রায়শই পেন্টাগনে নিম্নরূপে সাজানো থাকে:

  W
G   U
 R B

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

এই চ্যালেঞ্জে আপনাকে দুটি রঙ দেওয়া হবে এবং তাদের সম্পর্ক নির্ধারণ করা উচিত।

চ্যালেঞ্জ

আপনাকে সেট থেকে কোনও দুটি স্বতন্ত্র অক্ষর দেওয়া হয়েছে BGRUW। এগুলি আপনি একটি দুটি-অক্ষরের স্ট্রিং হিসাবে নিতে পারেন, অক্ষরের মধ্যে একটি ডিলিমিটারযুক্ত একটি স্ট্রিং, দুটি পৃথক অক্ষরের মান, দুটি সিঙ্গলটন স্ট্রিং, দুটি সংখ্যক তাদের কোড পয়েন্ট উপস্থাপন করে বা দুটি তালিকা / স্ট্রিং / পূর্ণসংখ্যার সমন্বিত একটি তালিকা বা সেট টাইপ হিসাবে নিতে পারেন।

আপনার আউটপুটটি আপনার পছন্দের দুটি স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ মানগুলির মধ্যে একটি হওয়া উচিত, একটি যা নির্দেশ করে যে দুটি রঙ মিত্র এবং একটি যা ইঙ্গিত দেয় যে তারা শত্রু। এই দুটি মানের একটিরও আউটপুট হতে পারে না।

আপনি একটি প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন এবং ইনপুট গ্রহণ এবং আউটপুট সরবরাহের আমাদের মানক পদ্ধতির কোনও ব্যবহার করতে পারেন ।

আপনি যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন তবে নোট করুন যে এই ফাঁকগুলি ডিফল্টরূপে নিষিদ্ধ করা হয়েছে।

এটি , তাই সংক্ষিপ্ততম বৈধ উত্তর - বাইটগুলিতে মাপা - জয় w

পরীক্ষার মামলা

কেবলমাত্র 20 টি সম্ভাব্য ইনপুট রয়েছে, তাই আমি তাদের সমস্ত তালিকা করব।

বন্ধুরা:

WU   UB   BR   RG   GW   UW   BU   RB   GR   WG

শত্রুরা:

WB   UR   BG   RW   GU   BW   RU   GB   WR   UG

33
পরবর্তী: মূল নিয়মগুলি প্রয়োগ করুন: পি
ক্যাপ্টেন ম্যান

12
@ ক্যাপ্টেনম্যান আপনি 30k চরিত্রের পোস্টে এটি ফিট করতে পারলে আমি আপনাকে উজ্জীবিত করব :)
ওয়ালফ্র্যাট

@ ওয়ালফ্র্যাট ৩০ কে? সম্ভব হওয়া উচিত
চার্লস

2
সবচেয়ে অপ্রত্যাশিত জোট থেকে @ ইভানকোলমিচেক সবচেয়ে অপ্রত্যাশিত ফলাফল আসে।
আলুরিয়াক

1
মজাদার ঘটনা: যাদু: সমাবেশটি সম্পূর্ণরূপে নিরাময় করছে :)
ম্যাথু রোহ

উত্তর:


82

জাভাস্ক্রিপ্ট (ES6),  26 23 17 15  14 বাইট

বাক্য গঠন সিনট্যাক্সে দুটি ASCII কোড হিসাবে ইনপুট নেয় (a)(b)। রিটার্নস 4বন্ধুদের জন্য বা 0শত্রুরা জন্য।

a=>b=>a*b/.6&4

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

কিভাবে?

নোট: কেবলমাত্র 0.6 দ্বারা বিভাগের পূর্ণসংখ্যা ভাগফল নীচে প্রদর্শিত হবে।

Combo | a  | b  | a*b  | / 0.6 | AND 4
------+----+----+------+-------+------
  WU  | 87 | 85 | 7395 | 12325 |   4
  UB  | 85 | 66 | 5610 |  9350 |   4
  BR  | 66 | 82 | 5412 |  9020 |   4
  RG  | 82 | 71 | 5822 |  9703 |   4
  GW  | 71 | 87 | 6177 | 10295 |   4
  UW  | 85 | 87 | 7395 | 12325 |   4
  BU  | 66 | 85 | 5610 |  9350 |   4
  RB  | 82 | 66 | 5412 |  9020 |   4
  GR  | 71 | 82 | 5822 |  9703 |   4
  WG  | 87 | 71 | 6177 | 10295 |   4
------+----+----+------+-------+------
  WB  | 87 | 66 | 5742 |  9570 |   0
  UR  | 85 | 82 | 6970 | 11616 |   0
  BG  | 66 | 71 | 4686 |  7810 |   0
  RW  | 82 | 87 | 7134 | 11890 |   0
  GU  | 71 | 85 | 6035 | 10058 |   0
  BW  | 66 | 87 | 5742 |  9570 |   0
  RU  | 82 | 85 | 6970 | 11616 |   0
  GB  | 71 | 66 | 4686 |  7810 |   0
  WR  | 87 | 82 | 7134 | 11890 |   0
  UG  | 85 | 71 | 6035 | 10058 |   0

পূর্ববর্তী পদ্ধতি, 15 বাইট

বাক্য গঠন সিনট্যাক্সে দুটি ASCII কোড হিসাবে ইনপুট নেয় (a)(b)। রিটার্নস 0বন্ধুদের জন্য বা 1শত্রুরা জন্য।

a=>b=>a*b%103%2

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

কিভাবে?

Combo | a  | b  | a*b  | MOD 103 | MOD 2
------+----+----+------+---------+------
  WU  | 87 | 85 | 7395 |    82   |   0
  UB  | 85 | 66 | 5610 |    48   |   0
  BR  | 66 | 82 | 5412 |    56   |   0
  RG  | 82 | 71 | 5822 |    54   |   0
  GW  | 71 | 87 | 6177 |   100   |   0
  UW  | 85 | 87 | 7395 |    82   |   0
  BU  | 66 | 85 | 5610 |    48   |   0
  RB  | 82 | 66 | 5412 |    56   |   0
  GR  | 71 | 82 | 5822 |    54   |   0
  WG  | 87 | 71 | 6177 |   100   |   0
------+----+----+------+---------+------
  WB  | 87 | 66 | 5742 |    77   |   1
  UR  | 85 | 82 | 6970 |    69   |   1
  BG  | 66 | 71 | 4686 |    51   |   1
  RW  | 82 | 87 | 7134 |    27   |   1
  GU  | 71 | 85 | 6035 |    61   |   1
  BW  | 66 | 87 | 5742 |    77   |   1
  RU  | 82 | 85 | 6970 |    69   |   1
  GB  | 71 | 66 | 4686 |    51   |   1
  WR  | 87 | 82 | 7134 |    27   |   1
  UG  | 85 | 71 | 6035 |    61   |   1

প্রাথমিক পদ্ধতির, 23 বাইট

একটি 2-অক্ষরের স্ট্রিং হিসাবে ইনপুট নেয়। রিটার্নস trueবন্ধুদের জন্য বা falseশত্রুরা জন্য।

s=>parseInt(s,35)%9%7<3

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


10
আহ, অবশেষে কিছু মজা। :)
মার্টিন এন্ডার

4
চমত্কার সন্ধান!
গ্রেগ মার্টিন

এমন কিছু চতুর গণিত কি আমি এখানে অবগত নই বা আপনি যে কাজ করেছেন এমনটি না পাওয়া পর্যন্ত আপনি বিভিন্ন মডুলোকে চাপিয়ে দিয়েছিলেন?
ফোরঅফফোর

নিখুঁতভাবে জোর করা হয়েছিল আমি মনে করি এটি সবচেয়ে ছোট ডাবল মডুলো সমাধান। তবে এই উত্তরের একটি বন্দর (যা একটি তুলনা ব্যবহার করছে) আসলে এক বাইট ছোট হবে।
আর্নল্ড

1
@ অডডেভ আমি আসলে সমস্ত বিট পরীক্ষা করেছিলাম, কেবলমাত্র কম গুরুত্বপূর্ণ তা নয়। উদাহরণস্বরূপ, a*b%290&8ঠিক পাশাপাশি কাজ করবে ( 0বন্ধুদের 8জন্য বা শত্রুদের জন্য উত্পাদন )।
আর্নল্ড

37

জেলি , 6 বাইট

ạg105Ị

যুক্তি হিসাবে দুটি কোড পয়েন্ট নেয়। বন্ধুর জন্য 1 টি ফলশ্রুতি , শত্রুদের জন্য 0

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

পটভূমি

এন এবং এম দুটি ইনপুট অক্ষরের কোড পয়েন্ট হওয়া যাক । গ্রহণ করে | এন - মি | , আমাদের কেবলমাত্র সমস্ত 2 টি অক্ষরের সংমিশ্রণ নিয়ে নিজেদের চিন্তিত করতে হবে। নিম্নলিখিত টেবিলটি অক্ষরগুলির সমস্ত 2 টি সংমিশ্রণটি দেখায় absolute

WU  2
UB 19
BR 16
RG 11
GW 16

WB 21
UR  3
BG  5
RW  5
GU 14

সকল শত্রু সমন্বয় দ্বারা বিভাজ্য হয় 3 , 5 , বা 7 কিন্তু কেউই বন্ধু সমন্বয় এই, যাতে বন্ধুরা ঐ যে সঙ্গে সহাবস্থান মৌলিক হয় ঠিক হয় 3 × 5 × 7 = 105

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

ạg105Ị  Main link. Left argument: n (code point). Right argument: m (code point)

ạ       Yield the absolute difference of n and m.
 g105   Compute the GCD of the result and 105.
     Ị  Insignificant; return 1 if the GCD is 1, 0 if not.

দুর্দান্ত দাগ! পরম মূল্য কেন প্রয়োজনীয়? (আমি এটি অনলাইনে চেষ্টা করেছি এবং এটি সঠিক উত্তর দেয় নি; তবে গাণিতিকভাবে এটি বিবেচনা করা উচিত নয়)
গ্রেগ মার্টিন

@ গ্রেগমার্টিন এটি প্রয়োজনীয় নয়; স্বাক্ষরিত পার্থক্য ঠিক পাশাপাশি কাজ করবে। বিয়োগ হ'ল _জেলি। আপনি অন্য কিছু ব্যবহার করেছেন?
ডেনিস

আহ আমি দেখছি, আমি ভুলভাবে কেবল পরম মান হিসাবে পড়ি , পরম পার্থক্য নয়।
গ্রেগ মার্টিন

35

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

"WUBRGWGRBUW".count

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

একটি বেনামী ফাংশন: 1বন্ধুদের এবং 0শত্রুদের জন্য ফেরত দেয় ।


2
কিভাবে কাজ করে?
stannius


21

বেফুঞ্জ -98, 13 12 বাইট

~~-9%5%3%!.@

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

0বন্ধুদের এবং 1শত্রুদের জন্য প্রিন্ট করুন

এটি অক্ষরের ASCII মানগুলির মধ্যে পার্থক্য ব্যবহার করে।

যদি আমরা এটি গ্রহণ করি (((ASCII difference % 9) % 5) % 3)তবে শত্রুদের জন্য মানগুলি 0 হবে Then তারপরে, আমরা মানটি না দিয়ে এটি মুদ্রণ করব।

গল্ফের জন্য @ মার্টিনকে ধন্যবাদ


9 বাইটের জন্য জেলি ব্যবহার IA%9%5%3¬করুন : অনলাইনে এটি
জোনাথন অ্যালান

@ জোনাথান অ্যালান আমি আপনাকে দেখতে পেয়েছি ইতিমধ্যে! খুশী হলাম।
মাইল্ডলি মিল্কিওয়েস্ট

আমি আসলে আপনার পদ্ধতিটি মোড় দিয়েছি (প্রকৃত ব্যবহারের তুলনায় প্রকৃত, পার্থক্যের চেয়ে বরং) 9 মড 6, এবং জেলি সূচিগুলিকে তালিকার মধ্যে মডিআরলিভাবে 7 এ নামিয়ে আনার বিষয়টি ব্যবহার করেছি । আমি আপনাকে স্বীকৃত এবং এখানে লিঙ্ক।
জোনাথন অ্যালান

@ জোনাথান অ্যালান আমিও 9 মড 6 পদ্ধতিটি নিয়ে এসেছি, তবে বেফুঞ্জের আসল পার্থক্য বা পরম মূল্য নেই, সুতরাং এটি তেমন সম্ভবপর ছিল না
মাইল্ডি মিল্কয়েস্টআস্ট

18

জেলি , 8 7 বাইট

পিগব্যাকস অফ মিস্টা ফিগিন্সের কল্পিত বেফঞ্জ উত্তর !

Iị390B¤

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

কিভাবে?

মিস্তাহা ফিগিনস যেমন উল্লেখ করেছেন যে ASCII মানগুলির মধ্যে সম্পূর্ণ পার্থক্য নিয়ে সিদ্ধান্তটি নেওয়া যেতে পারে Mod 9 Mod 5 Mod 3 - 0s তারপরে বন্ধু এবং 1s এবং 2s শত্রু।

এর পরিবর্তে যদি আমরা (সমতল) পার্থক্য মোড 9 গ্রহণ করি তবে আমরা দেখতে পাচ্ছি যে বন্ধুরা 1s, 2s, 7s এবং 8s এবং শত্রুরা 3s, 4s, 5s এবং 6s হয়।

কোড পার্থক্য সঙ্গে লাগে Iদৈর্ঘ্য 9 তালিকায় ইনডেক্স এবং তারপর [1,1,0,0,0,0,1,1,0], যা বাইনারি মধ্যে 390 হয় 390B। ইনডেক্সিং উভয়ই মডুলার (তাই কার্যকরভাবে ইনডেক্সিং বিনা মূল্যে 9 মডটি সম্পাদন করে) এবং 1-ভিত্তিক (অতএব একেবারে বাম দিকে 1)।


16

সি ++ টেমপ্লেট ধাতব প্রোগ্রাম, 85 বাইট

template<int A,int B,int=(A-B)%9%5%3>struct f;template<int A,int B>struct f<A,B,0>{};

কম গল্ফড:

template<int A, int B,int Unused=(((A-B)%9)%5)%3>
struct foe;
template<int A, int B>
struct foe<A,B,0>{};

যেহেতু এটি একটি রূপক ভাষা, একটি নির্মাণের সংকলন বা না সম্ভব সম্ভাব্য আউটপুট।

f<'W','B'>সংকলনের একটি উদাহরণ যদি এবং কেবল যদি হয় 'W'এবং 'B'শত্রু হয়।

বেফুঞ্জ উত্তর ভিত্তিতে গণিত ।

সরাসরি উদাহরণ

যেহেতু সি ++ টেমপ্লেট রূপকগুলি হ'ল সবচেয়ে খারাপ গল্ফিং ভাষাগুলির মধ্যে একটি, এর চেয়ে খারাপ যে কেউ লজ্জা বোধ করা উচিত। ;)


templateS এর অভ্যন্তরে মোট দুটি রিয়ন্ডান্ট হোয়াইটস্পেস রয়েছে বলে মনে হচ্ছে ।
ইয়াতসি

@ টুকুএক্সএক্স স্থির, ডি'ও
ইয়াক্ক

14

রুবি, 22 19 বাইট

->x,y{390[(x-y)%9]}

ইনপুট: 2 টি অক্ষরের ASCII কোড। আউটপুট: মিত্রদের জন্য 1, শত্রুদের জন্য 0

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

2 নম্বর মডুলোর 9 এর মধ্যে পার্থক্যটি পান, একটি বিটমাস্ক ব্যবহার করুন (390 বাইনারি হয় 110000110) এবং []অপারেটরটি ব্যবহার করে একটি বিট পান ।


2
আহা সুন্দর, আমি ভুলে যাচ্ছি যে পূর্ণসংখ্যাগুলি সূচী করা যেতে পারে। +1
মার্টিন ইন্ডার

16 বাইট: ->x,y{x*y%103%2}নোট করুন 0এবং 1বিপরীত।
এরিক ডুমিনিল

1
এবং x*y%51>9অন্য সকলের মতো 15 বাইট । আমি মনে করি upvotes এটিকে এখন এত আমূল পরিবর্তন করা অন্যায্য হবে।
জিবি

10

সিজেম , 8 বাইট

{*51%9>}

একটি নামবিহীন ব্লক যা স্ট্যাকের উপরে দুটি অক্ষর কোডের প্রত্যাশা করে এবং তাদের 0(বন্ধু) বা 1(শত্রু) এর সাথে প্রতিস্থাপন করে ।

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

ব্যাখ্যা

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

এটি বিভিন্ন ইনপুটগুলিতে কী করে তা এখানে রয়েছে (ক্রমটিকে উপেক্ষা করে, কারণ প্রাথমিক গুণটি পরিবর্তনীয়):

xy   x    y    x*y   %51  >9

WU   87   85   7395    0   0
UB   85   66   5610    0   0
BR   66   82   5412    6   0
RG   82   71   5822    8   0
GW   71   87   6177    6   0
WB   87   66   5742   30   1
UR   85   82   6970   34   1
BG   66   71   4686   45   1
RW   82   87   7134   45   1
GU   71   85   6035   17   1

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


9

Röda , 30 22 21 বাইট

_স্ট্রিমের মানগুলিকে ইনপুট হিসাবে গ্রহণ করে বাইটগুলি @fergusq এর জন্য ধন্যবাদ সংরক্ষণ করেছে

{[_ in"WUBRGWGRBUW"]}

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

ফাংশনটি push "WU" | fকোনও নাম নির্ধারণের পরে চালিত হয়

ব্যাখ্যা

{                      /* Declares an anonymous function */
 [                 ]   /* Push */
  _ in                 /* the boolean value of the value on the stream is in */
      "WUBRGWGRBUW"    /* this string */
}

o_O বাজ গতি
পাভেল

পরামিতিগুলি না নেওয়ার পরিবর্তে স্ট্রিম থেকে ইনপুট মানগুলি পড়ে 5 বাইট সংরক্ষণ করা সম্ভব: {[(_.._)in"WUBRGWGRBUW"]}তবে তারপরে ফাংশনটি অবশ্যই পছন্দ করতে হবে [a, b] | f
ফার্গুসক


9

সি, 33 32 29 24 22 বাইট

#define f(k,l)k*l%51<9

বন্ধুরা 1 হলে ফেরত দেয়, শত্রু হলে 0 হয়।


8

Vim, 22 21 বাইট

CWUBRGWGRBUW<esc>:g/<c-r>"/d<cr>

ইনপুট: দুটি অক্ষর সমন্বিত একটি একক লাইন।

আউটপুট: খালি বাফার হলে বন্ধু, WUBRGWGRBUWশত্রু থাকলে বাফার ।

ব্যাখ্যা

C                                 # [C]hange line (deletes line into " register and enters insert mode)
 WUBRGWGRBUW<esc>                 # insert this text and exit insert mode
                 :g/      /d<cr>  # delete all lines containing...
                    <c-r>"        # ... the previously deleted input

2
আপনি এর Cপরিবর্তে করতে পারেনcw
ক্রিটিক্সী লিথোস

8

জাপট , 6 বাইট

@ মার্টিন এেন্ডারের সমাধান দ্বারা অনুপ্রাণিত ।

ইনপুট হিসাবে দুটি চর কোডের অ্যারে নেয়।

×%51<9

এটি অনলাইন চেষ্টা করুন! | পরীক্ষা স্যুট

রিটার্নস trueবন্ধুদের জন্য, falseশত্রুরা জন্য।

14-বাইট সমাধান:

ইনপুট হিসাবে দুটি চর কোড নেয়

nV a /3%3 f ¦1

এটি অনলাইন চেষ্টা করুন! | পরীক্ষা স্যুট

ব্যাখ্যা:

nV a /3%3 f ¦1
nV a             // Absolute value of: First input (implicit) - Second input
      /3%3 f     // Divide by 3, mod 3, then floor the result
             ¦1  // Return true if the result does not equals 1, otherwise return false

12-বাইট সমাধান:

"WUBRGW"ê èU

এটি অনলাইন চেষ্টা করুন! | পরীক্ষা স্যুট

ব্যাখ্যা:

"WUBRGW"ê èU
"WUBRGW"ê     // "WUBRGW" mirrored = "WUBRGWGRBUW"
          èU  // Returns the number of times U (input) is found

রিটার্নস 1বন্ধুদের জন্য এবং 0শত্রুরা জন্য।

9-বাইট সমাধান :

@ আরনাউল্ডের সমাধান থেকে অনুপ্রাণিত ।

*V%24%B%2

পরীক্ষা স্যুট

রিটার্নস 1বন্ধুদের জন্য, 0শত্রুরা জন্য।

11-বাইট সমাধান:

@ মিস্তাহা ফিগিন্সের সমাধান থেকে অনুপ্রাণিত ।

nV %9%5%3¦0

পরীক্ষা স্যুট


8

ব্রেন-ফ্লাক , 155, 147 , 135 বাইট

(([(({}[{}]))<>])){({}())<>}(((([])[][][])[]())()()())<>{}<>{({}<><(({}))>)({}[{}]<(())>){((<{}{}>))}{}{{}({}<({}())>)(<()>)}{}<>}<>{}

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

এটি কোডের 134 বাইট প্লাস এক বাইট জরিমানা -aযা ASCII ইনপুট সক্ষম করে।

এটি ইনপুটগুলির মধ্যে নিখুঁত পার্থক্য সন্ধান করে এবং 2, 11, 16 বা 19 এর সমান কিনা তা পরীক্ষা করে এটি কাজ করে If যদি এটি হয় তবে ইনপুটটি একটি বন্ধু, এবং এটি 1 টি প্রিন্ট করে it's যদি এটি না হয় তবে এটি কিছুই প্রিন্ট করে না। যেহেতু মস্তিষ্ক-ফ্ল্যাকের কোনও কিছুই খালি স্ট্যাকের সাথে মিলে না, যা মিথ্যা, তাই কোনও আউটপুট মিথ্যা মান নয়। ( মেটা )

এই জবাব সম্পর্কে আমি বিশেষত একটি জিনিস পছন্দ করি তা হ'ল "পরম পার্থক্য" স্নিপেট (যা, (([(({}[{}]))<>])){({}())<>}{}{}<>{}) স্ট্যাক পরিষ্কার নয় তবে এটি এখনও এই উত্তরে ব্যবহার করা যেতে পারে যেহেতু এনকোডিংয়ের আগে আমরা কোন স্ট্যাকটি শেষ করব তা আমাদের যত্ন নেই since সম্ভাব্য পার্থক্য।

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

  1. স্পষ্টতই, এটি তাদের পপ করার কোডটি সরিয়ে দেয়: {}{}তবে আরও গুরুত্বপূর্ণ:

  2. এটি আমাদের থেকে 2, 11, 16, 19ক্রম সংকোচনের অনুমতি দেয়

    (((((()()))[][][](){})[][]())[])
    

    প্রতি

    (((([])[][][])[]())()()())
    

    ভাগ্যক্রমে, এই বাম ওভারগুলি পরে পরিচালনা করার জন্য কোনও অতিরিক্ত কোডের প্রয়োজন নেই, তাই এগুলি কেবল বিকল্প স্ট্যাকের উপর রেখে যায়।

যেহেতু মস্তিষ্ক-ফ্লাকটি বোঝা কুখ্যাতভাবে জটিল, তাই এখানে একটি পাঠযোগ্য / মন্তব্য করা সংস্করণ:

#Push the absolute difference of the two input characters. It is unknown which stack the result will end on
(([(({}[{}]))<>])){({}())<>}

#Push 2, 11, 16, 19, while abusing the values left on the stack from our "Absolute value" calculation
(((([])[][][])[]())()()())

#Pop a zero from the other stack and toggle back
<>{}<>

#While True
{

    #Move top over and duplicate the other top
    ({}<><(({}))>)

    #Equals?
    ({}[{}]<(())>){((<{}{}>))}{}

    #If so:
    {

        #Increment the number under the stack
        {}({}<({}())>)
        #Push a zero
        (<()>)

    }

    #Pop the zero
    {}

    #Go back to the other stack
    <>

#Endwhile
}

#Toggle back
<>

#Pop a zero
{}

একটি ধাক্কা আছে, পপ আপনি মুছে ফেলতে পারেন, এবং আরও কার্যকরভাবে 129 এ নামতে হলে আপনি 0 টি টিপতে
রাইলি

@ রিলে কুল, টিপটির জন্য ধন্যবাদ! আমি একটি মন্তব্য করা সংস্করণ পছন্দ করি, তাই আমি আপডেট করার আগে version সংস্করণটি বুঝতে না পারলে অপেক্ষা করতে যাচ্ছি।
DJMcMayhem

এটি ছিল মাত্র দুটি ছোটখাটো পরিবর্তন। এখানে গুরুত্বপূর্ণ অংশটি রয়েছে। আমার মন্তব্যগুলি সমস্ত ক্যাপগুলিতে রয়েছে, দুঃখিত যদি মনে হয় আমি চিৎকার করছি।
রিলে

7

জেলি , 14 বাইট

“WUBRG”wЀIAÆP

রিটার্নস 1শত্রুদের জন্য এবং 0বন্ধুদের জন্য।

অনলাইনে চেষ্টা করে দেখুন টেস্ট স্যুট !

কিভাবে?

“WUBRG”wЀIAÆP - Main link                                   e.g. WG
“WUBRG”        - ['W','U','B','R','G']
       wЀ     - first index of sublist mapped over the input     [1,5]
          I    - incremental differences                           -4
           A   - absolute value                                     4
            ÆP - is prime?                                          0

7

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

$Æ105¿Ö

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

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

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

$        Push 1 and [n, m] (the input).
 Æ       Reduce [n, m] by subtraction, pushing n - m.
  105¿   Take the GCD of n - m and 105.
      Ö  Test if 1 is divisible by the GCD (true iff the GCD is ±1).

6

সিজেম , 16 12 11 10 বাইট

মিস্তাহা ফিগিন্সের অ্যালগরিদম ব্যবহার করে গল্ফড 4 বাইট

লিনকে 1 টি বাইট সংরক্ষণ করা হয়েছে

l:m9%5%3%!

1শত্রু রঙের আউটপুটস , 0মিত্র রঙের জন্য।

এটি অনলাইন চেষ্টা করুন! (বা সমস্ত পরীক্ষার কেস যাচাই করুন )

ব্যাখ্যা

l           e# Push a line of input as a string
 :m         e# Reduce the string by subtraction (using the ASCII values)
   9%5%3%   e# Mod by 9, then by 5, then by 3. By doing this, enemy
            e#  pairs go to 0, and allies go to 1, 2, -1, or -2.
         !  e# Boolean negation

খুব চালাক হওয়ার চেষ্টা করবেন না! l:m9%5%3%!একটি বাইট সংক্ষিপ্ত।
লিন

@ লিন ওহ বাহ! এটা বিরক্তিকর। ধন্যবাদ
বিজনেস বিড়াল

5

রেটিনা , 18 বাইট

O`.
BR|BU|GR|GW|UW

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

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

পরবর্তী রেটিনা সংস্করণটির স্নিগ্ধ উঁকি হিসাবে, আমি একটি বিকল্প যুক্ত করার পরিকল্পনা করছি যা রেগেক্স এবং টার্গেট স্ট্রিংকে অদলবদল করে (সুতরাং বর্তমান স্ট্রিংটি রেজেক্স হিসাবে ব্যবহৃত হবে এবং আপনি এটি পরীক্ষা করার জন্য একটি স্ট্রিং দিন), এই ক্ষেত্রে এই সংক্ষিপ্ত সমাধান কাজ করবে (বা সেই লাইনের সাথে কিছু):

?`WUBRGWGRBUW



4

জেলি , 6 বাইট

ạ:3%3Ḃ

সম্পূর্ণতার জন্য! যুক্তি হিসাবে দুটি কোড পয়েন্ট নেয়। উৎপাদ 0 বন্ধুদের জন্য, 1 শত্রুরা জন্য।

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

পটভূমি

এন এবং এম দুটি ইনপুট অক্ষরের কোড পয়েন্ট হওয়া যাক । গ্রহণ করে | এন - মি | , আমাদের কেবলমাত্র সমস্ত 2 টি অক্ষরের সংমিশ্রণ নিয়ে নিজেদের চিন্তিত করতে হবে। নিম্নলিখিত টেবিলটি অক্ষরগুলির সমস্ত 2 টি সংমিশ্রণটি দেখায় absolute

WU UB BR RG GW  WB UR BG RW GU
 2 19 16 11 16  21  3  5  5 14

যদি আমরা এই পূর্ণসংখ্যাগুলি 3 দ্বারা বিভক্ত করি তবে আমরা নীচের ভাগফলগুলি পাই।

WU UB BR RG GW  WB UR BG RW GU
 0  6  5  3  5   7  1  1  1  4

1 , 4 , এবং 7 কে 1 এ ম্যাপ করা যায় ফলাফলগুলি মডুলো 3 নিয়ে

WU UB BR RG GW  WB UR BG RW GU
 0  0  2  0  2   1  1  1  1  1

এখন আমাদের সাম্য দেখতে হবে।

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

ạ:3%3Ḃ  Main link. Left argument: n (code point). Right argument: m (code point)

ạ       Absolute difference; yield |n - m|.
 :3     Integer division by 3, yielding |n - m| / 3.
   %3   Modulo 3, yielding |n - m| / 3 % 3.
     Ḃ  Parity bit; yield |n - m| / 3 % 3 & 1.

4

কিউবিক্স, 11 বাইট

আরনল্ডের সমাধানটির কিউবিক্স বাস্তবায়ন।

U%O@A*'g%2W

ব্যবহার

দুটি অক্ষর ইনপুট করুন এবং এটি 0বন্ধুদের এবং 1শত্রুদের জন্য আউটপুট দেয় । এখানে চেষ্টা করুন।

ব্যাখ্যা

কোডটি এভাবে প্রসারিত করা যায়।

    U %
    O @
A * ' g % 2 W .
. . . . . . . .
    . .
    . .

অক্ষরগুলি এই ক্রমে কার্যকর করা হয় (নিয়ন্ত্রণ প্রবাহ ব্যতীত):

A*'g%2%O@
A         # Read all input as character codes
 *        # Multiply the last two character codes
    %     # Modulo the result by
  'g      #     103
      %   # And modulo that by
     2    #     2
       O  # Output the result ...
        @ # ... and terminate


2

এডাব্লুকে, 23 বাইট

{$0="WUBRGWGRBUW"~$1}1

ব্যবহারের উদাহরণ উদাহরণ: awk '{$ 0 = "WUBRGWGRBUW" ~ $ 1} 1' <<< ইউবি

এই 1জুটিটি যদি বন্ধু হয় তবে তা মুদ্রণ করে 0। আমি চতুর কিছু করতে চেয়েছিলাম, তবে আমি যা কিছু ভেবেছিলাম তা আরও দীর্ঘ হবে।



2

রুবি, 28 বাইট

আউটপুটগুলি বন্ধুর পক্ষে সত্য, শত্রুর পক্ষে মিথ্যা:

p'WUBRGWGRBUW'.include?$**''

অবরুদ্ধ সংস্করণটি খুব আলাদা নয়:

p 'WUBRGWGRBUW'.include?(ARGV.join(''))


2

গল্ফস্ক্রিপ্ট , 7 বাইট

~*51%9>

ইনপুট হিসাবে দুটি কোড পয়েন্ট নেয়।

এটি অনলাইন চেষ্টা করুন! (টেস্ট স্যুট যা সুবিধার জন্য ইনপুট ফর্ম্যাটকে রূপান্তর করে))

আমার সিজেএম উত্তরের একটি গল্ফস্ক্রিপ্ট পোর্ট (যা প্রযুক্তিগতভাবে, আমার গল্ফস্ক্রিপ্ট ব্রুট ফরসার ... উহহ্ ...) এর ফলাফলের একটি সিজেএম বন্দর।

তবে, যেহেতু গল্ফস্ক্রিপ্ট সঠিকভাবে নেতিবাচক ইনপুটগুলির সাথে মডুলো পায়, একই বাইট গণনাতে একটি মজাদার বিকল্প সমাধান রয়েছে যা 4শত্রুদের পরিবর্তে ব্যবহার করে 1:

~-)9%4&

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

xy   x    y    x-y    +1  %9  &4

WU   87   85     2     3   3   0
UB   85   66    19    20   2   0
BR   66   82   -16   -15   3   0
RG   82   71    11    12   3   0
GW   71   87   -16   -15   3   0
WB   87   66    21    22   4   4
UR   85   82     3     4   4   4
BG   66   71    -5    -4   5   4
RW   82   87    -5    -4   5   4
GU   71   85   -14   -13   5   4

2

জাভা 7, 38 বাইট

int b(int a,int b){return(a-b)%9%5%3;}

@ মিস্তাহা ফিগিন্সের বেফুঞ্জ -98 উত্তর থেকে বন্দরটি এখনও পর্যন্ত পোস্ট করা উত্তরগুলি থেকে জাভা 7 - এ সবচেয়ে সংক্ষিপ্ত।
অন্যদের জন্য:

39 বাইট: @ আর্নল্ডের জাভাস্ক্রিপ্ট (ES6) এর উত্তর থেকে পোর্ট ।

int a(int a,int b){return a*b%24%11%2;}

39 বাইট: @ মার্টিনেন্ডারের সিজেএম উত্তর থেকে পোর্ট

Object e(int a,int b){return a*b%51>9;}

47 বাইট: @ স্টেডিবক্সের সি উত্তর থেকে পোর্ট

Object d(int a,int b){return(a=a*b%18)>7|a==3;}

52 বাইট: @ লিনের পাইথন 2 উত্তর থেকে পোর্ট

Object c(String s){return"WUBRGWGRBUW".contains(s);}

দ্রষ্টব্য: এড়িয়ে যাওয়া উত্তরগুলি যা প্রাইমস / প্যালিনড্রোম এবং একই রকম ব্যবহার করে, কারণ সেগুলি জাভাতে খুব কমই নেই। ;)
টোডো: আমার নিজের উত্তর নিয়ে আসছি .. যদিও আমি সন্দেহ করি এটি এর বেশিরভাগের চেয়ে কম orter

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


সম্পাদনা: ঠিক আছে, আমি নিজেই এমন কিছু নিয়ে এসেছি যা খুব খারাপ নয়:

50 বাইট:

Object c(int a,int b){return(a=a*b%18)>3&a<7|a<1;}

ব্যাখ্যা:

ab  a   b   a*b     %18

WU  87  85  7395    15
UB  85  66  5610    12
BR  66  82  5412    12
RG  82  71  5822    8
GW  71  87  6177    3
UW  85  87  7395    15
BU  66  85  5610    12
RB  82  66  5412    12
GR  71  82  5822    8
WG  87  71  6177    3

WB  87  66  5742    0
UR  85  82  6970    4
BG  66  71  4686    6
RW  82  87  7134    6
GU  71  85  6035    5
BW  66  87  5742    0
RU  82  85  6970    4
GB  71  66  4686    6
WR  87  82  7134    6
UG  85  71  6035    5

সব শত্রুরা পারেন সীমার মধ্যে 4-6 (সমেত) অথবা 0. হয়
EDIT2: হুম .. আমি শুধু খেয়াল এটা খুবই অনুরূপ @Steadybox 'উত্তর .. :(


2

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

echo!strstr(WBGURWRUGBW,$argn);

সঙ্গে চালান echo AB | php -nR '<code>হয়, যেখানে Aএবং Bদুটি রং আছে।

strtrইনপুটটি যেখানে পাওয়া যায় সেখান থেকে স্ট্রিংটি ফেরত দেয়;
সঙ্গে WBGURWRUGBWযেমন খড়ের গাদা এই একটি truthy স্ট্রিং যদি রং শত্রুরা হয় ফেরৎ; খালি স্ট্রিং না হলে।

!থেকে truthy স্ট্রিং সক্রিয় falseখালি আউটপুট ফলে,
এবং খালি স্ট্রিং trueআউটপুট ফলে, 1

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