タグ付けされた質問 「abstract-algebra」

抽象代数は、グループ、リング、フィールド、ベクトル空間などを含む代数的構造の研究です。

1
Moufangループのカウント
ループは非常に単純な代数構造です。タプル(G、+)で、Gは集合で、+は二項演算子G×G→Gです。つまり、+はGから2つの要素を取得し、新しい要素を返します。また、オペレーターは2つの特性を満たす必要があります キャンセル:すべての場合、AとBにGのユニークな存在のxとyとにGよう a + x = b y + a = b アイデンティティ:ある電子でGのすべてのためのように、AでGは、 e + a = a a + e = a グループの概念に精通している場合、ループは連想プロパティを持たない単なるグループであることに気付くかもしれません。 ループは非常に単純なので、人々はより多くのルールを追加して、より興味深い新しい構造を作成することを好みます。そのような構造はMoufangループもことFORALL満たす次の4人のアイデンティティをループであり、X、Y及びZでG z + (x + (z + y)) = ((z + x) + z) + y ((y + z) + x) + z = y + …

13
逆順列インデックス
前書き リストの辞書式の順列n個の要素は、0から番号を付けることができ、N!-1.たとえば、3!= 6個の順列が(1,2,3)あろう(1,2,3)、(1,3,2)、(2,1,3)、(2,3,1)、(3,1,2)、(3,2,1)。 順列がリストに適用されると、その要素は順列の数字と同じ順序で並べられます。たとえば、yieldsに順列(2,3,1)を適用しl = (a,b,c)ます(l[2],l[3],l[1]) = (b,c,a)。 順列の逆は、この操作を逆にする順列として定義されます。つまり、順列を適用し、その逆(またはその逆)は配列を変更しません。たとえば、yの逆(2,3,1)は(3,1,2)、(b,c,a)yieldsに適用されるため(a,b,c)です。 また、順列自体に適用される順列の逆は、整数1… nを生成します。たとえば、yields に適用(3,1,2)し(2,3,1)ます(1,2,3)。 私たちは今、関数定義revind(Xをインデックスと順列の逆置換の指標として)のx。(興味がある場合、これはA056019です。) インデックスの順列ので、私は唯一の最後の変更のkリストの項目を場合に限っ 0≤ I < K!、我々は影響を与えずに、リストの先頭に任意の数の要素を追加することができますrevind(Iを)。したがって、リストの長さは結果に影響しません。 チャレンジ あなたのタスクはrevind(x)を実装することです。入力/引数として単一の非負整数xを取り、結果を単一の非負整数として出力/返す完全なプログラムまたは関数を作成します。 入力および出力は0インデックスまたは1インデックスの場合がありますが、これはそれらの間で一貫している必要があります。 インデックスによって順列を生成する、順列のインデックスを返す、または逆順列を見つける組み込み関数は禁止されています。(すべての順列または次の順列を生成するビルトインが許可されます。) 標準のコードゴルフ規則が適用されます。 例 以下の例は0から始まります。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 3628 2000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

3
アーベル注文
いくつかの背景 数学では、グループは、タプル(あるG、•)Gがセットされ、•上の操作であるG任意の二つの要素になるようにX及びYにおけるG、X • yは、でもあるGは。 いくつかのために、X、Y、ZにおけるG次のように、塩基性基公理です。 Gは•の下で閉じられます。つまり、Gのx • y 演算は連想的です。つまり、x •(y • z)=(x • y)• z Gには恒等要素があります。つまり、すべてのx に対してx • e = xとなるようにGにeが存在します 演算は反転可能です。つまり、Gにはa • bが存在し、a • x = yおよびy • b = xとなる さて、それらはグループです。ここで、Abelianグループをグループ(G、•)として定義し、そのようにして•は可換演算です。つまり、x • y = y • xです。 最後の定義。グループの順序(G、•)。G |は、セットGの要素数です。 仕事 アーベルの次数は整数nであるため、次数nのすべてのグループはアーベルです。アーベルの注文の順序は、OEISのA051532です。あなたの仕事は、整数nが与えられると、このシーケンスのn番目の項(1-indexed)を生成することです。何もオーバーフローしないように、最大​​整数までの入力をサポートする必要があります。 入力は、関数の引数、コマンドラインの引数、STDIN、または便利なものから取得できます。 出力は、関数から返されるか、STDOUTに出力されるか、便利なものであれば何でも可能です。STDERRには何も書き込まないでください。 スコアはバイト数で、最短の勝ちです。 例 シーケンスの最初の25項は次のとおりです。 1, 2, …

2
デイ#6のランダムゴルフ:d20を転がす
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。リーダーボードは、最初の投稿でシリーズに関する詳細情報とともに見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。提案があれば、関連するサンドボックスの投稿でお知らせください。 穴6:d20を転がす テーブルトップRPGで非常に一般的なダイスは、20面ダイス(20面体、一般にd20として知られています)です。このようなサイコロを振るのはあなたの仕事です。ただし、1〜20の間の乱数を返すだけの場合は、少し簡単です。だからあなたの仕事は、与えられたダイのランダムネットを生成することです。 次のネットを使用します。 これは三角形のストリップなので、整数のリストとして簡単に表すことができます。たとえば、入力が与えられた場合: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] それは次のダイスに対応します(楽しい事実:これはマジックが使用するネットです:ライフカウンターの収集 /スピンダウンサイコロ)。 ただし、このダイを表すネットはこれだけではありません。顔の展開方法に応じて、60種類のネットがあります。さらに2つあります。 [1, 8, 9, 10, 2, 3, 4, 5, 6, 7, 17, 18, 19, 11, 12, 13, 14, 15, 16, 20] …

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
グループ療法:グループを特定する
特定の有限マグマの乗算表がグループを表すかどうかを決定するプログラムを作成します。マグマは、閉じている二項演算のセットです。つまり、 Gのすべてのa、bについて、a * bは再びGにあります(閉店) (G、*)をマグマとします。(G、*)は次の場合にグループです Gのすべてのa、b、cに対して、(a * b)* c = a *(b * c)(結合性) Gにすべてのaに対してe * a = a * e = aとなる要素eが存在します(中立要素の存在) Gのすべてのaについて、a * b = b * a = eであるようなGにabがあります。ここで、eは中立要素です(逆の存在) スペック 入力は、n ^ 2-1文字の文字列(マグマの各要素に1文字、許可されるのは0-9、az)で、演算子名を省略して、行ごとに読み取ったテーブルを表します。入力が有効なマグマを表すと仮定できます(つまり、各要素はヘッダー行/列で1回だけ出現します)。 例:ここにZ_4のテーブルがあります + | 0 1 2 3 ----------- 0 | 0 1 2 3 …

2
各フィールドサイズのプリミティブ要素を出力する
原始有限フィールドのフィールドの乗法群の生成元です。つまり、alphain F(q)は、in q−1の単一性の原始thルートである場合、原始要素と呼ばれF(q)ます。これは、のすべての非ゼロ要素を何らかの(正の)整数F(q)として記述できることを意味します。alpha^ii フィールドのすべての要素がF_{2^k}高々度の多項式として書くことができるk-1のいずれかである係数を持ちます1か0。これは完全なものにするために、あなたのコードも出力する必要がある既約多項式次数のk使用しているフィールドを定義します。 タスクはF_{2^k}、それぞれk = 1 .. 32に選択したプリミティブ要素を順番に出力するコードを書くことです。 出力は、単純kな要素の係数を任意の形式で単純にリストし、k+1さらに既約多項式の要素を別の行にリストする必要があります。k可能であれば、各値の出力を分離してください。 コードは好きなだけ時間がかかりますが、回答を送信する前にコードを最後まで実行する必要があります。 有限フィールドのプリミティブ要素を返す、または要素がプリミティブであるかどうかをテストする組み込み関数またはライブラリ関数を使用することはできません。 例 以下のためにk = 1のみ原始元です1。 以下のためにk = 2、私たちは持っています F_4。4つの要素がある{0, 1, x, x + 1}ため、2つのプリミティブ要素xとがありx + 1ます。したがって、コードは出力できます 1 1 1 1 1 例えば係数として、2行目は既約多項式で、この場合はx^2+x+1係数を持ち1 1 1ます。

5
XORプライムを見つける
では、この課題 XNORによってもたらされる、我々はXOR乗算を実装するように求めていました。この課題の目標は、最初のnXORプライムを見つけることです。XORプライムは、次の定義からわかるように、通常のプライムに非常に似ています。 素数の定義: 1とそれ自体の乗算を除き、2つの数値の乗算では形成できない1より大きい正の数。 XOR Primeの定義: 1とそれ自体のXOR乗算を除き、2つの数値のXOR乗算では形成できない1より大きい正の数。XORプライムはoeisシーケンスA014580を構成することに注意してください。 XOR乗算は、キャリーなしのバイナリロング乗算として定義されます。xnorのchallengeでXOR乗算の詳細を見つけることができます。 入力: 整数n。 出力: 最初のnXORプライム。 500以下のXORプライムは次のとおりです。 2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 …

3
サイコロを転がす
サイコロを転がす だから、私はさっきサイコロを転がしていて、挑戦を考えていました。 入力と動きのリストから取得されたネットを持つキューブが与えられたら、最後の下部にある正方形を見つけます。 ここでは例としてこの画像を使用します。 入力 動きのリストで文字列を受け取ります。文字列には大文字のASCII文字N、S、W、およびEのみが含まれます。これらは、キューブをその方向に1ステップ移動することに対応します。 写真では、1つのNが底面を6にします。この画像では、北がカメラから離れ、南が向かっており、東が右、西が左です。 また、次の形式の文字列を受け取ります。1P2P 3P 4P 5P 6P。ここで、各PはN、S、W、E、T、およびBの位置です。TおよびBは下と上です。 数字はその数字の顔であり、文字は顔の位置を表します。明確でない場合、ネットは常に数字で順序付けられるため、1P 2P 3P 4P 5P 6P、決して2B 1T 3N 4S 5W 6E。 画像内の位置は1S 2B 3E 4W 5T 6Nです。 出力 プログラムは、下側を表す数値を出力する必要があります。 テストケース (nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> 6 …

16
カスタムラベル付きの二面体グループD4コンポジション
二面体グループは、正方形の対称グループです。つまり、回転と反射を介して正方形をそれ自体に変換する動きです。8つの要素で構成されます:0、90、180、および270度の回転、水平、垂直、および2つの対角軸にわたる反射。D4D4D_4 画像はすべて、Larry Riddleによるこの素敵なページからのものです。 この課題は、これらの動きを構成することです。2つの動きが与えられると、それらを次々に実行するのと同じ動きを出力します。たとえば、移動7の後に移動4を行うことは、移動5を行うことと同じです。 移動を4に、次に移動7に順序を切り替えると、代わりに移動6が生成されることに注意してください。 結果は以下の表のとおりです。これは、グループ Cayleyテーブルです。だから、例えば、入力出力生成しなければならない。D4D4D_47,47,47, 4555 1234567812345678123456782341786534126587412387565867134267583124758624138675423112345678123456781234567823418756341265874123786557681324685731427685421385762431\begin{array}{*{20}{c}} {} & {\begin{array}{*{20}{c}} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \end{array} } \\ {\begin{array}{*{20}{c}} 1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ \end{array} } …

4
有限グループのサブグループの数を見つける
定義 グループの定義が既にわかっている場合は、この部分をスキップできます。有限グループ、およびサブグループの。 グループ 抽象代数では、グループはタプル(G、∗)です。ここで、Gは集合であり、∗は関数G×G→Gです。次のようなです。 閉包:Gのすべてのx、yについて、x ∗ yはGにもあります(∗が関数G×G→Gであるという事実によって暗示されます)。 連想:すべてのためのX、Y、ZにおけるG、(X * Y)* Z = X *(Y * Z) 。 同一性:要素が存在するEにおけるGのようにすべてのためのxにおけるG、X * E = X = E * X。 逆:毎XにおけるG、要素が存在するYはでGように、X * Y = E = Y * X、E前の箇条書きに記載された同一要素です。 有限グループ 有限群の基である(G、*)G、有限であるすなわち、有限個の要素を有します。 サブグループ サブグループ (H *)グループの(G、*)があるようであり、Hは、の部分集合であるG(必ずしも適切ではないサブセット)および(H *)、グループ(すなわち、満足4つの基準を超える)です。 例 検討二面体群のD 3 (G、*)G = {1、A、B、C、D、E}及び*は以下に定義されているが(このようなテーブルが呼び出されケーリーテーブル): ∗ | …


5
代数曲線プロッター
代数曲線は{(x,y) in R^2 : f(x,y)=0 }、多項式のゼロのセットとして記述できる「2D平面」の特定の「1Dサブセット」ですf。ここでは、2D平面を実際の平面と見なし、R^2そのような曲線がどのように見えるかを簡単に想像できるようにします。基本的には鉛筆で描くことができます。 例: 0 = x^2 + y^2 -1 半径1の円 0 = x^2 + 2y^2 -1 楕円 0 = xy十字形状、基本的にx軸の組合とy軸 0 = y^2 - x 放物線 0 = y^2 - (x^3 - x + 1)楕円曲線 0 = x^3 + y^3 - 3xy デカルトの葉 0 = x^4 …

4
与えられたサイズのアーベル群を数える
バックグラウンド 前回は、特定のサイズのグループをカウントしましたが、これは重要な問題です。 今回は、アーベルのグループ、つまり可換演算を持つグループのみをカウントします。正式に、基(G、*)がアーベルである場合、X * Y = Y * XすべてのためのためのX、YにおけるG。 この方法で問題ははるかに単純になるため、効率的にカウントします。 仕事 入力として負でない整数nを受け入れ、次数nの非同型アーベル群の数を出力または返すプログラムまたは関数を作成します。 グループの数を計算する1つの方法(A(n)で示します)は、次のことを確認することです。 A(0)= 0 場合、pは素数であり、A(Pのkは)の整数パーティションの数に等しいK。(cfr。OEIS A000041) もしN = MK、及びMとkが互いに素であり、A(N)= A(M)A(K) 。 これまたはA(n)を計算する他の方法を使用できます。 テストケース Input Output 0 0 1 1 2 1 3 1 4 2 5 1 6 1 7 1 8 3 9 2 10 1 11 1 …

7
256要素のフィールドを定義する
数学の分野とは、特定の公理(Wikipediaで説明。以下も参照)を満たすように、加算および乗算演算が定義された一連の数値です。 有限体はp n個の要素を持つことができます。ここでpは、素数でありn、自然数です。この課題では、p = 2とを使用してn = 8、256個の要素を持つフィールドを作成しましょう。 フィールドの要素は、0およびを含む範囲内の連続した整数でなければなりません1。 -128 ... 127 0 ... 255 または他のそのような範囲 フィールドの公理を満たすように、抽象「加算」および抽象「乗算」のために、2つの関数(またはそれがより簡単な場合はプログラム)を定義します。a(x,y)m(x,y) 一貫性:同じ引数で呼び出されたときに同じ結果a(x,y)をm(x,y)生成します 閉鎖性:aおよびの結果はm、関連する範囲の整数です 連想は:いずれかのためにx、yおよびz範囲内、a(a(x,y),z)に等しいですa(x,a(y,z))。同じm 可換性:任意用x及びy範囲内には、a(x,y)に等しいですa(y,x)。同じm 分配性:いずれかのためにx、yおよびz範囲内、m(x,a(y,z))に等しいです。a(m(x,y),m(x,z)) 中立要素:x範囲内のいずれかに対して、にa(0,x)等しくx、にm(1,x)等しいx 否定は:いずれかのx範囲内で、そのような存在するyことa(x,y)です0 逆:いずれかのx≠0範囲内で、そのような存在するyことm(x,y)です1 名前aとmは単なる例です。他の名前または名前のない関数を使用できます。あなたの答えのスコアはのためのバイトの長さの和であるaとm。 組み込み関数を使用する場合は、その関数が生成する結果を言葉で説明してください(たとえば、乗算表を提供する)。

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