0

私は、テキストファイル内の積表が恒等、結合、逆、およびアーベルのプロパティを持っているかどうかを識別する必要があるプロジェクトに取り組んでいます。現在、恒等関数に取り組んでいますが、ネストされた2つを使用する必要があると考えていますテーブルの行と列を循環するforループ。私は正しい方向に私を押すかもしれない何かを見つけることができません、どんな助けもありがたいです。ありがとうジェシカ

更新を追加したかっただけです。これは私が最終的に思いついたものであり、まだ作業を使用できる場合に備えて投稿しています。どうもありがとう。

group_el Group::getIdentity()
{
for (int i=0; i<order; i++)
   {
    bool identIsi = true;
    for (int j=0; j<order; j++)
       {
        if ((op(i,j)==i) && (op(j,i)==i))  //if i*j =i same as j*i = i then i is identity
          {
            return i; 
          }
        else 
          {
            identIsi = false;
          }
       }
    }

NO_IDENTITYを返します。}

4

1 に答える 1

1

C ++は操作が最も簡単な言語ではありませんが、実行可能です。

私は数年前に抽象代数のクラスを受講しましたが、覚えていることから、考えられるすべての組み合わせの式を書き出す必要があります(一部のグループは非可換であるため、実行する必要がありますA*BB*Aここ*で、は任意の演算子です)そこから作業します。

複雑さを減らすために、私はこの順序でそれを行います:

  1. ID要素をスキャンします。1つだけ存在する必要があり、その値を決定すると、残りの計算が少し簡単になるはずです。
  2. 乗算して単位元を与える2つの要素をスキャンします。これらの2つの要素(適切な順序)は逆です。
  3. グループがアーベルであるかどうかを判断するのは簡単です。アーベル群の定義に従ってください。
于 2012-05-19T04:58:51.403 に答える