Собственность идентичности в Cayley Table

Я работаю над проектом, который требует, чтобы я распознал, есть ли у таблиц Кейли в моих текстовых файлах свойства идентичности, ассоциативных, обратных и абелевых. В настоящее время я работаю над функцией идентичности, и хотя считаю, что должен использовать два вложенных циклы 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; }

1 ответ

Решение

С ++ будет не самым простым языком для работы, но он будет выполнимым.

Я взял курс по абстрактной алгебре несколько лет назад, и, насколько я помню, вам просто нужно выписать выражение для каждой возможной комбинации (поскольку некоторые группы некоммутативны, вам нужно A*B а также B*A, где * это произвольный оператор) и работа оттуда.

Чтобы уменьшить сложность, я бы сделал это в следующем порядке:

  1. Сканирование для идентификации элемента. Должен быть только один, и как только вы определите его значение, остальные вычисления станут немного проще.
  2. Сканирование для двух элементов, которые умножаются, чтобы дать элемент идентичности. Эти два элемента (в правильном порядке) являются обратными.
  3. Определить, является ли группа абелевой, будет просто. Просто следуйте определению абелевой группы.
Другие вопросы по тегам