Programming 板


LINE

各位大大好 我上一个发问的问题-「数字组合可能性」,其实是为了解决现在这个问题 目前已经写的出来数列的幂集合了,感谢回答的大大们 但是现在现实上的情况可能不适用於幂集合,因此再来请教 是这样的 现在要写一个程式,有一个数字及一数列,要求这一数字是由数列中的哪些数字加总的 非单一答案,所以要求显示各种组合性 举个例子: 90 是由 {30, 20, 50, 40, 60} 这些数字中的哪些数字加总起来的 可能组合性有.. 组合一: 50 + 40 = 90 组合二: 30 + 60 = 90 组合三: 30 + 20 + 40 = 90 这个程式就是像这样,要让使用者输入total和数列,程式再跑出所有组合情况 原本我的想法是用幂集合展开数列中所有数字的组合可能性, 让各个组合做加总,加总後再去判断哪个数字等於user输入的total 等於total的那个组合就是答案了 想说这样绝对不会miss,因为所有的组合性都会跑过、检查过,正确性也有 但问题来了,这方式只适用数列个数很小的时候 当数列个数大於20的时候,程式就开始跑很久了 我算过当个数是30时,组合性有10亿,每种组合要跑过的话,回圈至少要跑10亿圈 问过user,他们最多有可能到50个数字 所以想请教,有没有什麽方式或演算法可以解决? 谢谢 另外,我问过数学系的朋友,他的回答也跟我的想法一样 (就是幂集合的方式,一组一组检查),可是这样个数多时会很久 也想过「找零钱问题」 像是 http://tw.myblog.yahoo.com/dust512/article?mid=-2&prev=14&l=a&fid=5 可是「找零钱问题」的情况和我的问题不太一样,「找零钱问题」的零钱面额可以有 很多个,例如:10元硬碟*n 而我的情况是,同一个组合里,同一个数字只能出现一次 所以和「找零钱问题」不太一样 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.32.180
1F:→ coolcomm:排序後从大的数开始取 尽早排除不可能的 115.80.157.129 06/05 11:19
2F:→ coolcomm:集合 115.80.157.129 06/05 11:19
3F:→ coolcomm:举例来说 60+50=110 110>90 就不用在找 115.80.157.129 06/05 11:21
4F:→ coolcomm:其他包含这两个数的集合了 115.80.157.129 06/05 11:21
5F:→ coolcomm:这样应该可以? 当然 前提是你的数都是正 115.80.157.129 06/05 11:22
6F:→ coolcomm:数 115.80.157.129 06/05 11:22
7F:→ hangchu:数字都是正数,而且一定大於0 114.33.32.180 06/05 11:27
8F:→ hangchu:一定不会是小数,都是整数 114.33.32.180 06/05 11:28
9F:→ Schottky:背包问题 http://goo.gl/5zzCO 1.34.164.174 06/05 12:37
10F:→ MOONRAKER:Dynamic Programming 118.163.12.174 06/05 17:51
11F:→ MOONRAKER:不对,抱歉 118.163.12.174 06/05 17:57
12F:→ suhorng:楼上说的没错 用DP对每一格求出 "有没有解 118.166.59.251 06/05 20:28
13F:→ suhorng:, 递回印解时避开 "没有解" 的部份 118.166.59.251 06/05 20:28
14F:推 bigpigbigpig:可以试试backtracking(回溯)法 :) 1.169.138.224 06/05 20:49
15F:→ DJWS:http://codepad.org/MwJAGp73 像这样? 36.225.128.176 06/07 15:19
16F:→ DJWS:http://codepad.org/N1nGdSwS 改一下注解... 36.225.128.176 06/07 15:40
17F:→ hangchu:谢谢大家,我写出来了 114.41.96.91 06/13 22:05
18F:→ hangchu:谢谢DJWS大大的程式,帮忙很多,感谢^^ 114.41.96.91 06/13 22:06







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灯, 水草

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

TOP