3

Cayley 테이블에 의해 정의 된 집합 {0,1, .., n-1}에 대한 연산 *이 연관되어 있는지 확인하기 위해 어떻게 파이썬 코드를 작성합니까?그룹 이론과 파이썬

내 시도 코드가 대신 "Okay"n^3 번 인쇄

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

, 당신은 단지 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 

또한 집합의 연관성을 검사하는 알고리즘이 없습니다.
브 루트 포스를 사용해야합니다.

Light's Associativity Test을 사용하는 것이 가장 좋으며, 최악의 경우 실행 시간은 O(n^3)으로 향상되지 않습니다. 어떤 경우에는 작업을 단순화합니다.