|
楼主 |
发表于 2020-3-19 10:42
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
指定组合、排列结果查序号(索引号)
指定序号(索引号)查组合、排列结果
这个有前提,所有组合结果,已按从小到大排序。
不是公认的。主要用于随机抽取组合时使用。大组合量时不需(不能)列出所有组合结果
'*********************yjh_27****2020.3.19******************************
'功能: n个连续的自然数,任取m个,返回第k种取法
' 已知序号求排列组合结果的自定义函数
' 所有组合结果,已按从小到大排序。
'函数名: SeqNumPC
'
'参数1:n 元素
'参数2:m 抽取数量
'参数3:mode 模式
' mode个位
' 1 不考虑顺序不可重复(组合):C(n,m)=n!/m!(n-m)!
' 2 不考虑顺序且可重复:C(n+m-1,m) =(n+m-1)!/m!(n-1)!
' 3 考虑顺序不可重复(排列):P(n,m)=n!/(n-m)!
' 4 考虑顺序且可重复(m位n进制):n^m
' 5 没有相邻的数字组合:C(n-m+1,m)=(n-m+1)!/[(n-2m+1)!m!]
' 6 要求取出连续自然数组合:C(n-m+1,1)=n-m+1
' 7 从不取到取n个(全组合):2^n
' mode十位
' mode=1~9 输出二维数组
' mode=11~19 输出单列,","连接各列
' mode=21~29 输出单列," "连接各列
' mode=31~39 输出单列,"."连接各列
' mode=41~49 输出单列,""连接各列
'参数4:k 排列、组合序号(索引)ID
'参数5:n0 元素起始数(最小数),n为字符时:<>2,以" " 分列n;=2,以"," 分列n
'参数6:k0 顺序号起始数(最小数)
'
'返回值: 多列排列组合数组
'使用方法:kclmr = SeqNumPC(49, 6, 11, 13789132)
'
'*********************yjh_27****2020.3.19******************************
'功能: n个连续的自然数,任取m个,已知组合结果,求第k个序号
' 所有组合结果,已按从小到大排序。
'函数名: PCSeqNum&
'
'参数1:s 组合结果
'参数2:n 元素数
'参数3:mode 模式
' mode个位
' 1 不考虑顺序不可重复(组合):C(n,m)=n!/m!(n-m)!
' 2 不考虑顺序且可重复:C(n+m-1,m) =(n+m-1)!/m!(n-1)!
' 3 考虑顺序不可重复(排列):P(n,m)=n!/(n-m)!
' 4 考虑顺序且可重复(m位n进制):n^m
' 5 没有相邻的数字组合:C(n-m+1,m)=(n-m+1)!/[(n-2m+1)!m!]
' 6 要求取出连续自然数组合:C(n-m+1,1)=n-m+1
' 7 从不取到取n个(全组合):2^n
' mode十位
' mode=1~9 输出二维数组
' mode=11~19 输出单列,","连接各列
' mode=21~29 输出单列," "连接各列
' mode=31~39 输出单列,"."连接各列
' mode=41~49 输出单列,""连接各列
'参数4:n0 元素起始数(最小数),n为字符时:<>2,以" " 分列n;=2,以"," 分列n
'参数5:k0 顺序号起始数(最小数)
'
'返回值: 多列排列组合数组
'使用方法:kclmr = PCSeqNum("24 29 33 37 40 45", 49)
'
'
|
评分
-
2
查看全部评分
-
|