二面体グループケイリーテーブル


8

二面体群D(で表される同一用い、正三角形の対称性を表すid)、(で表される回転r1とをr2)、そして反射が(で表されるs0s1s2)。

あなたの仕事は、要素の構成を計算すること。それらは、以下のCayleyテーブルによって与えられます。yバツバツyD

  x  id  r1  r2  s0  s1  s2
y  +-----------------------
id | id  r1  r2  s0  s1  s2
r1 | r1  r2  id  s1  s2  s0
r2 | r2  id  r1  s2  s0  s1
s0 | s0  s2  s1  id  r2  r1
s1 | s1  s0  s2  r1  id  r2
s2 | s2  s1  s0  r2  r1  id

入力

xおよびの合理的な入力y。順序は関係ありません。

出力

yで構成されているxか、xおよびに基づいてテーブルの値を検索していますy

テストケース

これらはの形で与えられx y -> yxます。

id id -> id
s1 s2 -> r1
r1 r1 -> r2
r2 r1 -> id
s0 id -> s0
id s0 -> s0

I / Oに関する注意

あなたは、任意の合理的な置換を使用することができid, r1, r2, s0, s1, s2、例えば、1, 2, 3, 4, 5, 60, 1, 2, 3, 4, 5、あるいは[0,0], [0,1], [0,2], [1,0], [1,1], [1,2](ここで最初の数回転/反射を示し、2番目はインデックスです)。

回答:



3

ゼリー、1 バイト

左側がy、右側がxの2進リンク。

アクションが説明するように変換された最初の3つの自然数の表現を使用します。

   name:  id          r1          r2          s0          s1          s2
  value:  [1,2,3]     [2,3,1]     [3,1,2]     [2,1,3]     [1,3,2]     [3,2,1]
(action:  identity    rot-Left    rot-Right   swap-Left   swap-Right  swap-Outer)

Jonathan FrechのPython回答の移植版

ジェリーの「インデックスイン」アトムであり、ベクトル化します。Jellyは1インデックスであることに注意してください。

オンラインでお試しください!または、質問名を使用して表を参照してください。


左側をx、右側をyにするには、代わりに次の値を使用できます。

id       r1       r2       s0       s1       s2
[1,2,3]  [3,1,2]  [2,3,1]  [1,3,2]  [3,2,1]  [2,1,3]

... こちらをご覧ください



3

パイソン227の 26 23バイト

lambda x,y:(y+x*5**y)%6

オンラインでお試しください!編集:@NieDzejkobのおかげで3バイト節約されました。次のマッピングを使用します。

 id | r1 | r2 | s0 | s1 | s2 
----+----+----+----+----+----
 0  | 2  | 4  | 1  | 3  | 5  

@JonathanFrech ...私は持っていませんx*-1...私は持っていますx*(-1**y)
Neil

@JonathanFrechああ、私は自分のテストコードを入力しました、私は得て(-1)**yいると思いました。ああ、それでもまだ1バイト短い...
Neil

うーん...そして私は私がバイトをゴルフしたと思った...
ジョナサン・フレッチ

D4チャレンジと同様に、(-1)-3バイトの場合は5に置き換えることができます。
NieDzejkob




1

JavaScript(Node.js)24 19バイト

(x,y)=>(y+x*5**y)%6

オンラインでお試しください!編集:に切り替えることで2バイト、**@ NieDzejkobのおかげで3バイト節約されました。次のマッピングを使用します。

 id | r1 | r2 | s0 | s1 | s2 
----+----+----+----+----+----
 0  | 2  | 4  | 1  | 3  | 5  

古い24バイトバージョンは、古いバージョンのJavaScriptでも機能します。

(x,y)=>(y%2?y+6-x:y+x)%6


0

05AB1E、1 バイト

è

@JonathanAllanのJelly answerのポートですが、0ベースのインデックスを使用するため、表現は次のようになります。

id       r1       r2       s0       s1       s2       # Original values
[0,1,2]  [1,2,0]  [2,0,1]  [1,0,2]  [0,2,1]  [2,1,0]  # Values instead

オンラインそれを試してみたり、すべての可能な組み合わせを確認するか、IDにマッピングされたすべてのバックを確認してください

説明:

è  # Index the second (implicit) input-list vectorized into the first (implicit) input-list
   # And output the result implicitly

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.