栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

确定符号是否为第i个组合nCr的一部分

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

确定符号是否为第i个组合nCr的一部分

我相信您的问题是组合或子集的排序问题。

我将通过 Combinatorica
包为您提供Mathematica的实现,但是除非您熟悉语义,否则上面的Google链接可能是一个更好的起点。

UnrankKSubset::usage = "UnrankKSubset[m, k, l] gives the mth k-subset of set l, listed in lexicographic order."UnrankKSubset[m_Integer, 1, s_List] := {s[[m + 1]]}UnrankKSubset[0, k_Integer, s_List] := Take[s, k]UnrankKSubset[m_Integer, k_Integer, s_List] :=        Block[{i = 1, n = Length[s], x1, u, $RecursionLimit = Infinity},   u = Binomial[n, k];   While[Binomial[i, k] < u - m, i++];   x1 = n - (i - 1);   Prepend[UnrankKSubset[m - u + Binomial[i, k], k-1, Drop[s, x1]], s[[x1]]]       ]

用法就像:

UnrankKSubset[5, 3, {0, 1, 2, 3, 4}]**{0,3,4}**

产生集合{0、1、2、3、4}的第6个(从0开始索引)长度3组合。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449354.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号