python 八皇后问题
fromitertoolsimportpermutationsn=4cols=range(n)forvecinpermutations(cols):if(n==len(s...
from itertools import permutations
n = 4
cols = range(n)
for vec in permutations(cols):
if (n == len(set(vec[i] + i for i in cols))
== len(set(vec[i] - i for i in cols))):
print(vec)
我想知道 if (n == len(set(vec[i] + i for i in cols)) == len(set(vec[i] - i for i in cols))): 是什么意思啊,
或者解释一下set(vec[i]+i for i in cols))是什么意思
显示的是这个结果,但是我看不懂 展开
n = 4
cols = range(n)
for vec in permutations(cols):
if (n == len(set(vec[i] + i for i in cols))
== len(set(vec[i] - i for i in cols))):
print(vec)
我想知道 if (n == len(set(vec[i] + i for i in cols)) == len(set(vec[i] - i for i in cols))): 是什么意思啊,
或者解释一下set(vec[i]+i for i in cols))是什么意思
显示的是这个结果,但是我看不懂 展开
1个回答
展开全部
vec[i]+i for i in cols 这个相当于
for i in cols:
vec[i]+i
这个表达式应该会产生四个数,比如是2,2,2,2
然后用set((2,2,2,2))就是{2}
追问
if 语句在什么情况下为true 啊,能不能解释一下,有点没看明白这句话的思路
追答
n =4 ,因此当len(set(vec[i] + i for i in cols)) 和 len(set(vec[i] - i for i in cols))均等于4时成立
即set(vec[i] + i for i in cols)和set(vec[i] - i for i in cols)长度均为4时成立
左边是每个数加上下标,右边是每个数减下标,当他们都含有四个不同元素的时候就成立了
例如 (1,3,0,2),左边是(1,4,2,5),右边是(1,2,-2,-1) 长度都是4,就成立了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询