这几天一个关于排列组合的问题想不通,请各位指教
我想实现一个数字里面的几个元素的排列组合,但是实现不了dim dtarr(苹果,梨,橘子,香蕉,西瓜)
For a = 1 To 5
For b = 1 To 5
For c = 1 To 5
For d = 1 To 5
For e = 1 To 5
dt(1) = dtarr(a)
dt(2) = dtarr(b)
dt(3) = dtarr(c)
dt(4) = dtarr(d)
dt(5) = dtarr(e)
If dt(2) <> "西瓜" Or dt(4) <> "梨" Then
For l = 1 To 5
Cells(10 + m, l) = dt(l)
Next
m = m + 1
End If
Next e
Next d
Next c
Next b
Next a 回复 1# weeew
要的結果是怎樣的?? 原谅我语文太差,没看懂你是要干什么。 回复 2# kk_lee69
就是想列出所有的可能性
香蕉,苹果,梨,橘子,西瓜
苹果,梨,橘子,西瓜,香蕉
苹果,梨,西瓜,香蕉,橘子
苹果,橘子,西瓜,香蕉,梨 回复 3# 水木子
就是想实现 这几个元素的重新排
我实际是想弄个排值班的
周一到周五,5个人排班, 我想排出所有的可能性,对每次出现的进行判断是不是冲突。比如周二不能排周四不能排。
然后我用一位数组 下标表示星期,这样判断的时候我就能借助数组下标来判断是不是冲突
#include <array.au3>
Dim $aArray = ['苹果', '梨', '橘子', '香蕉', '西瓜']
Dim $x = 0, $Num = CombineNum(UBound($aArray))
Dim $aCombine[$Num]
Combine($aArray, 0, UBound($aArray) - 1)
_ArrayDisplay($aCombine)
Func Combine($aArray, $k, $m)
Local $i, $str = ''
If $k > $m Then
For $i = 0 To $m
$str &= $aArray[$i] & "|"
Next
$aCombine[$x] = StringTrimRight($str, 1)
$x += 1
Else
For $i = $k To $m
;~
_ArraySwap($aArray[$k], $aArray[$i])
;~
Combine($aArray, $k + 1, $m)
;~
_ArraySwap($aArray[$k], $aArray[$i])
;~ ========以上是老版本函数调用方式===============
;~ ========以下是新版本函数调用方式===============
_ArraySwap($aArray, $k, $i)
Combine($aArray, $k + 1, $m)
_ArraySwap($aArray, $k, $i)
Next
EndIf
EndFunc ;==>Combine
Func CombineNum($n = 0)
If $n > 1 Then
Return $n * CombineNum(($n - 1))
Else
Return $n
EndIf
EndFunc ;==>CombineNum
haijie1223 发表于 2016-4-25 17:47 http://www.autoitx.com/images/common/back.gif
有现成的_ArrayPermute() 回复 6# haijie1223
谢谢! 回复 7# afan
{:face (394):} 找块豆腐撞死得了 回复 7# afan
好东西啊!学习了。 回复 9# haijie1223
兄弟,能不能说下算法啊 本帖最后由 131738 于 2016-4-26 11:43 编辑
haijie1223 发表于 2016-4-25 17:47 http://www.autoitx.com/images/common/back.gif
看到这个截图,才想起你是在使用 ACN 版的, QQ 上回的 SciTE 配置工具对 ACN 无用
我目前使用的一个灰色背景
配置文件如下:#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# START: DO NOT CHANGE ANYTHING AFTER THIS LINE #-#-#-#-#
# Standard SciTE4AutoIt3 Color scheme
#------------------------------------------------------------
font.base=font:Arial,size:10,$(font.override)
font.monospace=font:Courier New,size:14
#Color Settings
#Background
style.au3.32=style.*.32=$(font.base),back:#C0C0C0
#CaretLineBackground
caret.line.back=#DFDA00
# Brace highlight
style.au3.34=fore:#0000FF,back:#C0C0C0
# Brace incomplete highlight
style.au3.35=fore:#008000,back:#C0C0C0
# White space
style.au3.0=fore:#000000,back:#C0C0C0
# Comment line
style.au3.1=fore:#008000,back:#C0C0C0
# Comment block
style.au3.2=fore:#008000,back:#C0C0C0
# Number
style.au3.3=fore:#0000FF,back:#C0C0C0
# Function
style.au3.4=fore:#000090,back:#C0C0C0
# Keyword
style.au3.5=fore:#0000FF,back:#C0C0C0
# Macro
style.au3.6=fore:#808000,back:#C0C0C0
# String
style.au3.7=fore:#FF0000,back:#C0C0C0
# Operator
style.au3.8=fore:#FF8000,back:#C0C0C0
# Variable
style.au3.9=fore:#5A5A5A,back:#C0C0C0
# Send keys in string
style.au3.10=fore:#808080,back:#C0C0C0
# Pre-Processor
style.au3.11=fore:#808000,back:#C0C0C0
# Special
style.au3.12=fore:#DC143C,back:#C0C0C0
#Abbrev-Expand
style.au3.13=fore:#FF0000,back:#C0C0C0
# COM Objects
style.au3.14=fore:#993399,back:#C0C0C0
#Standard UDF's
style.au3.15=fore:#0080FF,back:#C0C0C0
#User UDF's
style.au3.16=fore:#0080FF,back:#C0C0C0
code.page=936
output.code.page=936
character.set=134
# END => DO NOT CHANGE ANYTHING BEFORE THIS LINE#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
style.errorlist.32=back:#C0C0C0,font:Courier New,size:10
caret.fore=#FF0000
caret.width=3
horizontal.scroll.width.tracking=1
output.scroll=2
find.replace.advanced=1
backup.files=0
proper.case=0
error.inline=1
highlight.current.word=1
highlight.current.word.by.style=1
highlight.current.word.autoselectword=0
highlight.current.word.wholeword=0
highlight.current.word.matchcase=0
highlight.current.word.minlength=3
use.tabs=1
indent.size=4
indent.size.*.au3=4
tabsize=4
caret.line.back.alpha=256
selection.fore=#006000
selection.alpha=100
selection.back=#F0A0A8
style.error.1=fore:#FF0000,back:#FFFF00
style.error.2=fore:#FFFFFF,back:#FF0000
highlight.current.word.colour=#00D040
indicators.alpha=63
calltips.set.above=0
style.au3.38=fore:#050505,back:#FFFFFF
calltips.color.highlight=#FF0000
visible.policy.strict=1
visible.policy.lines=0
command.name.0.*=
command.0.beta=
command.name.19.*=
command.19.beta=
command.name.33.*=
command.33.beta=
openpath.$(au3)=$(SciteDefaultHome)\..\include;
如觉得可用, 在 SciTE 窗口 "选项" 菜单中打开" 用户配置文件 "
复制以上内容粘贴到打开的用户配置文件, 保存后即可.......
另外, 虫子也有一个黑背景的配置文件在 QQ 上.......... 回复 12# 131738
多谢!手机上的,明天试试。 留個腳印 macgyver 回复 7# afan
学习啦文档很重要
页:
[1]
2