Programming 板


LINE

※ 引述《mycircle (Careless whisper)》之铭言: : ※ 引述《TonyQ (骨头)》之铭言: : 感谢回文和推文的网友 我把我的问题再说清楚一点好了 : 这个问题其实是一个老问题了 我拿来做练习而已 : 题目如下 : 如何列出1..n 的所有排列组合 : 例如 123 的所有排列组合 为 123 132 321 132 213 231 3! = 6种 : 可是如果12345 勒 就将近有120种排列组合 如果扩增到 1...10勒 : 就会有10!=3628800种 : 的排列组合 : 这时人脑便没办法一个一个将他展现出来了 : 而且此类问题可以归类为NP hard 问题 也就是数字规模增大 : 求解时间以及复杂度将会非线性的来增加 : 我一开始的想法是用暴力法 也就是所谓的穷举法一一把他列出 : 但我知道如网路上这位网友所提的概念 : http://new-acos.blogspot.com/2007/07/blog-post_04.html : 会比较节省演算的效率与记忆体 : 不过还是尝试写看看 因为我还是新手 : 两种穷举法的原始码列举如下(意思是差不多的) 我写在EXCEL 的VBA上 : 第一种 : : ======== 问题来了 ====== : 在写的过程中 在第一种穷举法时 : 我本来是想写成动态的 也就是我希望当使用者只要改变N的大小 就可以了 : 但是我发现 以这个问题为例 : 像for next 以及 if then 的这些条件式 都会随着N的增加而增加 : 我就突然想到 如果以後碰到这类问题时该如何解决 : 如果我以後只要碰到 变数增加时 我的条件式也会增加时 我该如何处理 : 程式写得很糟 只是在写的过程中 想到这个问题 : 所以想问看看高手是如何处理这类问题的 感谢您抽空看完我的文章 谢谢 基本上正常的问题碰到这种状况都会想办法转换成 不用变数增加判断式就跟着增加的写法 -.-;; 这就是为甚麽会有 NP complete & transfer and conquer的由来 XD 因为要转换问题变成比较好解决的问题。 我刚有写个sample , 不过该死的vb 6竟然不报备关掉了 , 就算了 , 只留下一个recursive解 .Q_Q ──────────────────────────────── 当初在做这题的时候我是取巧用string来做 当然这题也是典型的递回题 记得他没有内建stack类别 , 所以就建议用递回写 当然算排列组合的话 , 这还不是最快的 , 因为你可以把reverse算一种 , 可以减少一半的cost . ──────────────────────────────── Dim inputStr As String inputStr = "12345" Dim n As Integer n = Len(inputStr) printStr "", inputStr Sub printStr(strNow As String, strNext As String) Dim n n = Len(strNext) If n = 0 Then List1.AddItem (strNow) '用你想要显示的方法替换掉 Else For i = 1 To n printStr strNow & Mid(strNext, i, 1), Mid(strNext, 1, i - 1) & _ Mid(strNext, i + 1, n - i) Next End If End Sub --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 语 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.no-ip.info --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.59.247 ※ 编辑: TonyQ 来自: 220.132.59.247 (10/13 16:59)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP