我正在努力建立一个元组函数,它接受集合和参数n。参数指定生成的向量应具有的索引数。然后,该函数会置换集合中所有可能的n元组元素。
到目前为止,我一直在尝试组合来自tuples.core和math.combinatoris的函数, 即元组和排列。
(defn Tuples [& args]
(combo/permutations (tuple args)))
示例)
输入:(0,1)n = 3
输出:[[0,0,0] [0,0,1] [0,1,0] [1,0,0] [0,1,1] [1,1,0] [1 ,0,1] [1,1,1]]
答案 0 :(得分:1)
您要找的是clojure.math.combinatorics/selections:
(require '[clojure.math.combinatorics :as c])
(c/selections [0 1] 3)
;=> ((0 0 0) (0 0 1) (0 1 0) (0 1 1) (1 0 0) (1 0 1) (1 1 0) (1 1 1))