有3个键和3个锁,我必须编写一个代码来显示可能的尝试。规则是:
我希望以一种方式更改此代码,而不是" fst< - [3]"它说; " fst不能[1]" 而且我还想补充说2之前不能来1.我尝试了它(elemIndex 2(x,y,z))> (elemIndex 1(x,y,z)) 但它没有用。一些想法我会很感激。
d = [(x,y,z) | x <- [1..3], y <- [1..3], z <-[1..3], fst <- [3] , tail <- 1], x /= y, y /= z, x /= z]
答案 0 :(得分:1)
您可以使用以下内容:
d = [(3, y, z) | y <- [1..2], z <-[1..2], y /= z, y /= 2]
给出了
[(3,1,2)]
<强>解释强>
第一个键不能作为第一个键。
和
第二个密钥永远不能放在第一个密钥之前。
暗示x
不能为1或2,因此必须为3.这就是
[(3, y, z) | y <- [1..2], z <-[1..2]
自
无法多次尝试任何密钥。
我们也有
, y != z
最后
第二个密钥永远不能放在第一个密钥之前。
给出
,y / = 2]
事实上,有些想法,你可以说你可以写
d = [(3, 1, 2)]