求输出一组任意数的全排列组合结果,可以使用EXCEL,C,VB.等工具,给出完整算法,给出工具则更好,
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/13 21:39:18
求输出一组任意数的全排列组合结果,可以使用EXCEL,C,VB.等工具,给出完整算法,给出工具则更好,
vb 排列组合算法
这是一个类模块的代码
Option Explicit
' 所谓回溯:就是搜索一棵状态树的过程,这个过程类似于图的深度优先
' 搜索(DFS),在搜索的每一步(这里的每一步对应搜索树的第i层)中
'产生一个正确的解,然后在以后的每一步搜索过程中,都检查其前一步
'的记录,并且它将有条件的选择以后的每一个搜索状态(即第i+1层的 状态节点).
' 需掌握的基本算法:
'排列:就是从n个元素中同时取r个元素的排列,记做P(n,m).(当m=n时,
'我们称P(n,n)=n!为全排列) 例如我们有集合OR = {1,2,3,4},那么
' n = |OR| = 4, 且规定r=3, 那么P(4,3)就是:
'{1,2,3}; {1,2,4}; {1,3,2}; {1,3,4}; {1,4,2}; {1,4,3};
' {2,1,3}; {2,1,4}; {2,3,1}; {2,3,4}; {2,4,1}; {2,4,3};
' {3,1,2}; {3,1,4}; {3,2,1}; {3,2,4}; {3,4,1}; {3,4,2};
'{4,1,2}; {4,1,3}; {4,2,1}; {4,2,3}; {4,3,1}; {4,3,2}
Private n As Integer, m As Integer
Private pNum As Integer
Private used() As Integer
Private p() As String
Private Data As Variant
Private PData As Variant
'排列组合
Public Sub Permute(vData As Variant, iPm As Integer, vPData As Variant)
Data = vData
n = UBound(vData) - LBound(vData) + 1
If iPm n Then
m = n
End If
Cnm = Pnm(n, m) / Pnm(m, m)
End Function
Dim a As New Class1
Dim v1(2) As Integer
Dim v2
v1(0) = 1: v1(1) = 2: v1(2) = 3
a.Permute v1, 3, v2
v2为二维数组,V2(5,2)
这是一个类模块的代码
Option Explicit
' 所谓回溯:就是搜索一棵状态树的过程,这个过程类似于图的深度优先
' 搜索(DFS),在搜索的每一步(这里的每一步对应搜索树的第i层)中
'产生一个正确的解,然后在以后的每一步搜索过程中,都检查其前一步
'的记录,并且它将有条件的选择以后的每一个搜索状态(即第i+1层的 状态节点).
' 需掌握的基本算法:
'排列:就是从n个元素中同时取r个元素的排列,记做P(n,m).(当m=n时,
'我们称P(n,n)=n!为全排列) 例如我们有集合OR = {1,2,3,4},那么
' n = |OR| = 4, 且规定r=3, 那么P(4,3)就是:
'{1,2,3}; {1,2,4}; {1,3,2}; {1,3,4}; {1,4,2}; {1,4,3};
' {2,1,3}; {2,1,4}; {2,3,1}; {2,3,4}; {2,4,1}; {2,4,3};
' {3,1,2}; {3,1,4}; {3,2,1}; {3,2,4}; {3,4,1}; {3,4,2};
'{4,1,2}; {4,1,3}; {4,2,1}; {4,2,3}; {4,3,1}; {4,3,2}
Private n As Integer, m As Integer
Private pNum As Integer
Private used() As Integer
Private p() As String
Private Data As Variant
Private PData As Variant
'排列组合
Public Sub Permute(vData As Variant, iPm As Integer, vPData As Variant)
Data = vData
n = UBound(vData) - LBound(vData) + 1
If iPm n Then
m = n
End If
Cnm = Pnm(n, m) / Pnm(m, m)
End Function
Dim a As New Class1
Dim v1(2) As Integer
Dim v2
v1(0) = 1: v1(1) = 2: v1(2) = 3
a.Permute v1, 3, v2
v2为二维数组,V2(5,2)
求输出一组任意数的全排列组合结果,可以使用EXCEL,C,VB.等工具,给出完整算法,给出工具则更好,
跪求C语言题,给出一组数求它的奇数和和偶数和
在EXCEL中给出一组数据后得到一条曲线,请问怎么样显示这条曲线的公式?或是求曲线上任意点的斜率?
如何使用Excel或其他工具将一组数据分为M组,使每组数据的差值最小?
查找英文单词的工具~可以脱机使用
给出一个算法和程序框图,求a.b.c三个数最小值
测量工具的使用
ARCGIS 9.3中工具-拓展里是空的,我知道是安装的不全,求大神给出个主意,好人
C语言题,给出结果、给出解释 .
英语翻译RT 求手工翻译 请达人帮助,忌Google翻译等工具的结果,
(2011•济南一模)给出程序框如图,则输出的结果为4545.
从猿到人的进化过程中起到重要作用的是什么 是劳动还是制造使用工具 希望权威人士给出明确答复