【数字排列】从1到6的6个数字排列组合说明,每组数字必须由6个数组成,1和6...

发布时间:2021-03-31 13:40:25

从1到6的6个数字排列组合说明,每组数字必须由6个数组成,1和6不能相邻,同一个数字出现的次数最多3次,每组数字最少由3个数组成,同一个数不能连续出现2次以上.举例:111234 121623 131211 232323以及少于6个数组成的都不可以我学过几天FOXPRO知道要编个小程序,但是丢了好多年了,编不出来了,

网友回答

【答案】 13680种,EXCEL中用程序跑遍所有情况,剔除不符的.
  EXCEL里,菜单——工具——宏——V…B…编辑器
  在编辑器界面,菜单——插入——模块
  在模块1里粘贴如下代码:
  Sub Macro1()
  Range(A1).Select
  Dim i1,i2,i3,i4,i5,i6,n,k,p,q,flag
  Dim tstr,nstr,dbstr
  Dim tshuzu(7)
  n = 0
  For i1 = 1 To 6
  For i2 = 1 To 6
  For i3 = 1 To 6
  For i4 = 1 To 6
  For i5 = 1 To 6
  For i6 = 1 To 6
  tstr = i1 & i2 & i3 & i4 & i5 & i6
  flag = 1
  For k = 1 To 6
  If InStr(tstr,11 * k) 0 Then
  flag = 0
  Exit For
  End If
  Next
  If InStr(tstr,16) 0 Or InStr(tstr,61) 0 Then
  flag = 0
  End If
  If flag = 1 Then
  tshuzu(1) = i1
  tshuzu(2) = i2
  tshuzu(3) = i3
  tshuzu(4) = i4
  tshuzu(5) = i5
  tshuzu(6) = i6
  For p = 1 To 5
  For q = p + 1 To 6
  If tshuzu(p) > tshuzu(q) Then
  t = tshuzu(p)
  tshuzu(p) = tshuzu(q)
  tshuzu(q) = t
  End If
  Next
  Next
  nstr = tshuzu(1) & tshuzu(2) & tshuzu(3) & tshuzu(4) & tshuzu(5) & tshuzu(6)
  For k = 1 To 6
  If InStr(nstr,1111 * k) 0 Then
  flag = 0
  Exit For
  End If
  Next
  dbstr =
  For k = 1 To 6
  If InStr(dbstr,tshuzu(k)) = 0 Then
  dbstr = dbstr & tshuzu(k)
  End If
  Next
  If Len(dbstr)
以上问题属网友观点,不代表本站立场,仅供参考!