群论与Python

2024-05-15 01:50:24 发布

您现在位置:Python中文网/ 问答频道 /正文

如何编写一个Python代码来检查由Cayley表定义的集合{0,1,…,n−1}上的操作*是否关联。在

我尝试的代码是:

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

Tags: 代码infalseforlenreturnif定义
1条回答
网友
1楼 · 发布于 2024-05-15 01:50:24

与其打印"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

此外,还没有算法来检查集合的关联性。
你必须使用暴力。在

最好的办法是使用Light's Associativity Test,这“不会改善O(n^3)最坏情况下的运行时。在某些情况下,它只是简化了任务。”

相关问题 更多 >

    热门问题