combinatorics相关内容

从数组中,生成所有不同的、非空的子数组,并保持顺序

我有一个带有子数组的数组,需要一种算法来生成子数组的所有可能的不同组合.结果组合可以是任何长度.例如,如果 Array 有 4 个子数组,则第一个子数组本身将是唯一且有效的结果组合,任何长度的任何其他唯一组合也是如此. 与具有不同顺序的相同项目的子数组的组合不会被认为是唯一的. 让 mainArray = [[0.3, 1], [0.5, 2], [0.6, 3], [0.3, 4]]// ..

骑士之旅高效解决方案

我在 prolog 中构建了一个代码来查找一系列合法的动作,其中马在棋盘的每个方格 (8x8) 上恰好落下一次. 我使用了如下逻辑:有8种骑士动作: 右 1 下 2 左 1 下 2 右 2 下 1 左 2 下 1 右 1 上 2 左 1 上 2 右 2 上 1 左 2 上 1 右1下2步: 移动(X,Y) :-C_X 是 X mod 8,R_X 是 X//8,C ..
发布时间:2022-01-12 10:18:04 其他开发

n 个元素中 k 个元素的所有组合

有人可以给我一个函数的链接或伪代码,用于从 n 中找到 k 个元素的所有组合吗?可能在 STL 中.我不需要计算 n 选择 k,我需要列出所有大小为 k 的数字的向量. 谢谢 解决方案 在 C++ 中给出以下例程: template inline bool next_combination(const Iterator first, Iterator k, const Iterat ..
发布时间:2022-01-07 11:07:47 C/C++开发

F# 中的组合和排列

我最近为一个 F# 项目编写了以下组合和排列函数,但我很清楚它们远未得到优化. ///将列表向前旋转一位.让旋转 lst =List.tail lst @ [List.head lst]///获取列表的所有旋转.让 getRotations lst =let rec getAll lst i = if i = 0 then [] else lst :: (getAll (rotate lst) ..
发布时间:2022-01-05 09:50:30 其他开发

分配问题,一个 NumPy 函数?

由于 赋值问题 可以以单个矩阵的形式提出,我是想知道 NumPy 是否有一个函数来解决这样的矩阵.到目前为止,我没有找到.也许你们中的一个人知道 NumPy/SciPy 是否有分配问题解决功能? 编辑:与此同时,我在 http://software.clapper.org/munkres/.我仍然认为 NumPy/SciPy 实现会更快,对吗? 解决方案 不,NumPy 不包含这样的 ..
发布时间:2021-12-31 12:29:34 Python

给定组合时如何计算索引(字典序)

我知道有一种算法允许在给定数字组合(无重复,无顺序)的情况下计算字典顺序的索引. 这对我的应用程序来说非常有用,可以加快速度... 例如: 组合(10, 5)1 - 1 2 3 4 52 - 1 2 3 4 63 - 1 2 3 4 7....251 - 5 7 8 9 10252 - 6 7 8 9 10 我需要算法返回给定组合的索引. es: index( 2, 5, 7, 8, ..
发布时间:2021-12-17 15:16:49 其他开发

第 N 个组合

有没有直接的方法可以得到 nCr 的所有组合的有序集合的第 N 个组合? 示例:我有四个元素:[6, 4, 2, 1].一次服用三个的所有可能组合是:[[6, 4, 2], [6, 4, 1], [6, 2, 1], [4, 2, 1]]. 有没有一种算法可以给我,例如排序结果集中的第 3 个答案 [6, 2, 1],没有枚举所有以前的答案? 解决方案 请注意,您可以通过递归生 ..
发布时间:2021-12-17 14:54:55 其他开发

获取所有可能的单词组合

我有一个包含 n 个单词的列表(比方说 26 个).现在我想获得所有可能组合的列表,但每行最多有 k 个单词(假设为 5 个) 所以当我的单词列表是:aaa, bbb, ..., zzz我想得到: aaabbb...啊啊啊啊aaaccc...aaabbbcccdddeeefffaaabbbcccdddeeeggg... 我想让它可变,以便它可以处理任何 n 或 k 值.应该没有单词是两次 ..
发布时间:2021-12-16 08:57:31 C#/.NET

计算 n 元笛卡尔积

给定两个列表,我可以生成所有排列的列表这两个列表的笛卡尔积: 置换:: [a] ->[a] ->[[一个]]置换 xs ys = [ [x, y] |x 置换 [1,2] [3,4] == [ [1,3], [1,4], [2,3], [2,4] ] 如何扩展 permute 以便它不使用两个列表,而是使用列表的列表(长度 n)并返回列表的列表(长度 n) 置换:: [[a]] ->[[一个 ..
发布时间:2021-12-14 12:05:53 其他开发

Haskell 中 2 个列表的笛卡尔积

我希望在 Haskell 中生成 2 个列表的笛卡尔积,但我不知道如何去做.笛卡尔积给出了列表元素的所有组合: xs = [1,2,3]ys = [4,5,6]购物车产品:: [a] ->[b] ->[(a,b)]购物车 xs ys ==>[(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)] 这不是一个实际的家庭作业问题,也与任何此类问 ..
发布时间:2021-12-14 11:29:45 其他开发

在 SQL 中生成所有组合

我需要在给定的大小 @n 集合中生成大小 @k 的所有组合.有人可以请查看以下 SQL 并首先确定以下逻辑是否返回预期结果,其次是否有更好的方法? /*CREATE FUNCTION dbo.Factorial ( @x int )返回整数作为开始声明@value int如果@x <= 1设置@值= 1别的SET @value = @x * dbo.Factorial( @x - 1 )返 ..
发布时间:2021-12-13 08:28:30 其他开发

使用 MATLAB 生成所有重复组合

如何创建所有k-组合重复 使用 MATLAB 的给定集合(也称为 k-multicombinations 或 multisubsets)? 这与笛卡尔积类似,但仅在排序上不同的两行应该被认为是相同的(例如向量 [1,1,2]=~=[1,2,1] 被认为是相同的),因此生成笛卡尔积然后应用 unique(sort(cartesianProduct,2),'rows') 应该会产生相同的结果. ..
发布时间:2021-12-08 15:18:22 其他开发

生成某些向量元素的所有可能组合(笛卡尔积)

我想生成给定数量向量的元素的所有可能组合. 例如,对于[1 2]、[1 2]和[4 5]我要生成的元素: [1 1 4;1 1 5;1 2 4;1 2 5;2 1 4;2 1 5;2 2 4;2 2 5] 问题是我不知道需要计算组合的向量数量.在这种情况下可能有 3 个,也可能有 10 个,我需要一个概括.你能在 MATLAB 中帮我解决这个问题吗?是否已经有一个预定义的函数可以 ..
发布时间:2021-12-08 14:21:40 其他开发