Общий декартово произведение может быть реализован как:Генерация декартово мощности в Standard ML
fun cartesian(xs, ys) =
let fun pairOne(x,[]) = []
| pairOne(x, y::ys) = [x,y]::pairOne(x,ys)
fun cart([],ys) = []
| cart(x::xs, ys) = pairOne(x, ys) @ cart(xs,ys)
in
cart(xs,ys)
end
Я ищу способ создания декартово мощности класса к.
Для к = 2, это выведет:
[[true,true],[true,false],[false,true],[false,false]]
И при к = 3:
[[true,true,true],[true,true,false],[true,false,false],[false,false,false],[false,false,true],...]
Благодаря
Вы, похоже, не будет просить о перестановках вообще. Более того, как вы спрашиваете о декартовых силах списка с самим собой. –
@JohnColeman Спасибо, ты прав. Я пересмотрел свой вопрос. –