問題タブ [abstract-algebra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
63 参照

python-3.x - m 桁の数値セットのすべての可能な順列のショートカット

私は有限体に取り組んできました。素数 があるとしますp=7。だから私はリストを取得しますq=[0,1,2,3,4,5,6]。ここで、セット q の要素のすべての可能な順列が 7 か所必要です。たとえば、[1,1,1,4,6,3,1] は可能な順列の 1 つです。それを行うためのPythonに組み込みのコマンドはありますか?実際、私は P が存在するより大きなフィールドで作業しています127 (p=127).

0 投票する
2 に答える
454 参照

haskell - 関数型プログラミングにおける代数構造とは何ですか?

私は関数型プログラミングの概念とアイデアについて軽く読んでいます。これまでのところ、代数構造、型クラス、代数データ型という 3 つの主な概念について読んできました。代数データ型とは何かについて、かなりよく理解しています。合計型と積型はかなり簡単だと思います。たとえば、 (4 つの値と記号を持つ) と(13 の値と記号を持つ) Card2 つの列挙型から構成される積型である型のような代数データ型を作成することを想像できます。SuitRank

しかし、私は代数構造と型クラスが何であるかを正確に理解しようとすることにまだ夢中になっています。私は頭の中に表面レベルのイメージしか持っていませんが、たとえば、ファンクター、モノイド、モナドなどのさまざまなタイプの代数構造について頭を完全に理解することはできません.これらは正確にどのように異なるのでしょうか? プログラミング設定でどのように使用できますか? 型クラスは通常のクラスとどう違うのですか? 少なくとも、抽象代数と関数型プログラミングに関する優れた本の方向性を教えてくれる人はいますか? 誰かが Haskell を学ぶことを勧めましたが、関数型プログラミングを理解するために本当に Haskell を学ぶ必要がありますか?

0 投票する
0 に答える
75 参照

algorithm - 表現と行動 - 合理的なタングルダンス

4 人が A、B、C、D の位置に立ち、図の初期構成で 2 本のロープを持っています。

ここに画像の説明を入力

これらの人々は、好きな順序で、2 つの動きを複数回実行することで、これらのロープで「踊る」ことができます。

  • グループとして反時計回りに 90 度回転します。(したがって、Aの位置にいる人はBの位置に、Bの位置にいる人はCの位置に、というように移動します。)この動きを「回転」と呼び、Rで示します。

    例: 与えられた初期状態を 1 回回転すると、以下の状態になります。

    ここに画像の説明を入力

  • D と C の位置にいる人 (北東と南東にいる人) が D と位置を交換し、C の上でロープを持ち上げます。この動きを「スワップ」と呼びます。T と表記します。

    例: 1 つのスワップでの初期状態が与えられた場合の状態は次のとおりです。

    ここに画像の説明を入力


回転 - R

スワップ - T

操作のプロパティ:

  • 操作は可換ではありません - RRRTT は RTRTR と等しくありません

  • 演算は連想 - (TR)T は T(RT) に等しい

  • 逆 - R^-1 = R^3 または 3R および T^-1 = RTRTR

    R^-1 (反時計回りの 1 回転) は次のとおりです。

    ここに画像の説明を入力

    3R(時計回りに3回転)とは:

    ここに画像の説明を入力


  1. このもつれの状態を抽象データ型で表現するには?

  2. 操作 (ROTATE & SWAP) は、この抽象データ型によって表されるこのもつれの状態をどのように変更しますか?