python怎样生成拉丁方?
https://baike.baidu.com/item/... 拉丁方的概念
简单的说就是某一变量在其所处的任意行或任意列中,只出现一次。
请问下这类问题的思路是什么?谢谢
回答:
拉丁方问题似乎是一个NP完全问题,就我查到的资料而言人类似乎并没有一个能在多项式时间内得到所有拉丁方阵的解法,当n很大时连拉丁方阵的数量的最精确的估算的上下界相差都很远。
如果只要求生成一个的话:
python">def create_latin_square(n: int, start_el: int=1): row = [i for i in range(1, n+1)]
row = row[start_el-1:] + row[:start_el-1]
return [row[i:] + row[:i] for i in range(n)]
以上是 python怎样生成拉丁方? 的全部内容, 来源链接: utcz.com/p/938401.html