如何在python中查找排列中的最大数?
我想从一个排列中提取最大的数字。我现在正在使用groups模块,因此下面代码中的输出应该是15如何在python中查找排列中的最大数?,python,math,permutation,finite-group-theory,Python,Math,Permutation,Finite Group Theory,我想从一个排列中提取最大的数字。我现在正在使用groups模块,因此下面代码中的输出应该是15 from groups import * a = Perm((1, 2, 3), (4, 15, 6), (7, 8, 9)) max([x for x in a]) 使用以下公式定义置换的最大值: p = permutations([1, 2, 3]) l = list(p) max(l[0]) highestnum = a.max() 然后对给定的排列进行迭代。如果只想找到最大值,我无
from groups import *
a = Perm((1, 2, 3), (4, 15, 6), (7, 8, 9))
max([x for x in a])
使用以下公式定义置换的最大值:
p = permutations([1, 2, 3])
l = list(p)
max(l[0])
highestnum = a.max()
然后对给定的排列进行迭代。如果只想找到最大值,我无法得到你想要的这个排列。但是你试试这个-
from itertools import permutations
perm = permutations([1, 2, 3, 4, 15, 6, 7, 8, 9])
for i in list(perm):
print (max(i))
这段代码将始终作为输出。首先,您没有正确创建排列。正确的语法如中第23页所示: 接下来,对该模块进行设置,使其理论上置换所有非负整数,其中有限多个映射到除自身以外的值。所以理论上,在这个模的排列中没有最高的数。正如您在第5页的链接所述 由于未明确定义的键等于其值(p[i]==i),因此未定义perm大小n 因此,从一个方面来说,你寻求“从排列中提取最高数量”是毫无意义的。然而,在任何给定的时间,表示该模块中的置换的数据结构的数量都是最大的。该模块试图对用户隐藏该信息,以保持作用于所有非负整数的理论观点。但是由于
Perm
类是从dict
内置类型派生的,因此您可以使用
highestnum = max(a)
在您的示例中,它确实返回值15
。但请注意,最大值可能很容易更改,而不会更改所表示的排列。例如,如果执行print(a[20])
,似乎不会改变排列a
,并使用=
将a
的值与其以前的值进行比较,得到True
。但是现在max(a)
产生值20
。因此,max(a)
不一致,取决于排列的当前内部表示,因此使用此值是不明智的
幸运的是,您可以找到一个更一致的“最高数”,即通过排列更改的最高数:
p = permutations([1, 2, 3])
l = list(p)
max(l[0])
highestnum = a.max()
这还会返回所需的结果,15
。访问a[20]
或任何其他值都不会改变a.max()
,因此您应该满足于max()
值
顺便说一下,关于您链接的文档,这里是文档,它是您链接到的预打印的完成版本。这是。然而,我在上面提到了你的链接。该文档中的Python代码使用了Python 2.6:我做了一些更改,使其在Python 3.7中运行,并用它来检查我的答案。这里的置换与最大值有什么关系?我需要找到更大置换的最大值。那只是一个例子example@NewYork但是排列不会改变最大数。如果给定排列,如何查找最大数?我无法在conda或PyPI或快速web搜索中找到任何名为
组的模块。您从哪里获得此模块及其文档?置换组有许多可能的实现,具体的实现与您的问题有关。