3

Cayleyテーブルで定義された集合{0,1、..、n-1}の演算*が連想であるかどうかをチェックするPythonコードを書くにはどうすればいいですか?グループ理論とPython

私試みたコードは次のとおりです。

def is_associative_cayley_table(table): 
    if not is_cayley_table(table): 
     return False 

    for i in range (0,len(table)): 
     for j in range (0,len(table)): 
      for k in range (0,len(table)): 
       if (table[table[i][j])][k])==(table[i][(table[j][k])]): 
        print("Okay") 
       else 
        return False 

答えて

1

代わりの"Okay"n^3回を印刷し、あなただけのboolを返すようにしたいかもしれません。

def is_associative_cayley_table(table): 
    if not is_cayley_table(table): 
     return False 

    for i in range (0,len(table)): 
     for j in range (0,len(table)): 
      for k in range (0,len(table)): 
       if (table[table[i][j])][k])!=(table[i][(table[j][k])]): 
        return False 
    return true 

また、セットの結合性を確認するアルゴリズムはありません。
brute-forceを使用する必要があります。

Light's Associativity Testは、最悪の場合の実行時間をO(n^3)に改善しません。場合によってはタスクを単純化するだけです。

関連する問題