找回密码
 加入
搜索
查看: 7457|回复: 15

[效率算法] 这几天一个关于排列组合的问题想不通,请各位指教

 火.. [复制链接]
发表于 2016-4-25 08:14:18 | 显示全部楼层 |阅读模式
我想实现一个数字里面的几个元素的排列组合,但是实现不了

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
发表于 2016-4-25 10:32:39 | 显示全部楼层
回复 1# weeew

要的結果是怎樣的??
发表于 2016-4-25 10:35:29 | 显示全部楼层
原谅我语文太差,没看懂你是要干什么。
 楼主| 发表于 2016-4-25 12:33:42 | 显示全部楼层
回复 2# kk_lee69


    就是想列出所有的可能性
香蕉,苹果,梨,橘子,西瓜
苹果,梨,橘子,西瓜,香蕉
苹果,梨,西瓜,香蕉,橘子
苹果,橘子,西瓜,香蕉,梨
 楼主| 发表于 2016-4-25 12:36:32 | 显示全部楼层
回复 3# 水木子


    就是想实现 这几个元素的重新排
我实际是想弄个排值班的
周一到周五,5个人排班, 我想排出所有的可能性,对每次出现的进行判断是不是冲突。比如周二不能排周四不能排。
然后我用一位数组 下标表示星期,这样判断的时候我就能借助数组下标来判断是不是冲突
发表于 2016-4-25 17:47:03 | 显示全部楼层

#include <array.au3>
Dim $aArray[5] = ['苹果', '梨', '橘子', '香蕉', '西瓜']
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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-4-25 18:30:39 | 显示全部楼层
haijie1223 发表于 2016-4-25 17:47



    有现成的  _ArrayPermute()
 楼主| 发表于 2016-4-25 20:57:44 | 显示全部楼层
回复 6# haijie1223


   谢谢  !
发表于 2016-4-25 22:53:50 | 显示全部楼层
回复 7# afan


    找块豆腐撞死得了
发表于 2016-4-26 05:30:21 | 显示全部楼层
回复 7# afan


    好东西啊!学习了。
 楼主| 发表于 2016-4-26 07:39:48 | 显示全部楼层
回复 9# haijie1223


    兄弟,能不能说下算法啊
发表于 2016-4-26 11:18:38 | 显示全部楼层
本帖最后由 131738 于 2016-4-26 11:43 编辑
haijie1223 发表于 2016-4-25 17:47


看到这个截图,才想起你是在使用 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 上..........

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-4-26 18:59:30 | 显示全部楼层
回复 12# 131738


    多谢!手机上的,明天试试。
发表于 2016-4-30 22:18:15 | 显示全部楼层
留個腳印 macgyver
发表于 2016-5-1 12:54:19 | 显示全部楼层
回复 7# afan


    学习啦文档很重要
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 08:53 , Processed in 0.360677 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表