MATLAB 板


LINE

: 推 jatj:http://goo.gl/QHWeyh exactly what you need 07/16 09:05 : 嘘 jatj:为何不稍微回一下有没有用呢? 07/18 12:48 : → kurt28:推楼上 原PO至少也回应一下吧 07/18 22:13 : j大您好,您提供的资料非常有用,非常抱歉这麽晚才回覆您, : 因为当时还有另一个问题想说能不能用您提供的资料来解决, : 这样就不用上来再问一遍了, : 没有及时回覆您在这里跟您说声抱歉, : 这边还有另一个问题想再请教版上的各位, : 假设有一个1Xn的矩阵, : 矩阵内的元素可重复且相加要等於K, : 并得出所有的组合 : : 例如: : n=5 : K=10 : A=[a1 a2 a3 a4 a5] : a1+a2+a3+a4+a5=10 : : 一开始我的想法是先跑出所有可能的组合数, : 再利用if判断来挑出符合的矩阵, : 因为我的写法会把 : [1 1 1 1 1 ] : [2 2 2 2 2 ] : ... : [10 10 10 10 10 ] : 这几种可能都跑过, : 所以当n与K很大时, : 处理时间便会非常久, : 且有可能会out memory, : 所以想请问版上的各位是否有其他的方法能解决, : 谢谢 : ※ 编辑: mann0614 (49.213.228.38), 07/19/2014 00:56:44 : 推 profyang:是只能正整数吗? 我觉得这不容易 就算有方法可以直接找出 07/19 15:16 : → profyang:你要的解,他的个数大约也是你全部可能点数的一半吧 07/19 15:17 : → profyang:也就是你现在全部可能列出来会爆 就算有方法找出你要的解 07/19 15:17 : → profyang:也有可能会爆 07/19 15:18 : 推 kurt28:有回应有推! 07/19 21:27 : → mann0614:是正整数没错!那p大可以讲一下您的写法吗?说不定能够对 07/20 10:31 : → mann0614:我有帮助,目前我的写法只能用於固定的n,若n改变就必须 07/20 10:31 : → mann0614:手动改变code,希望目前至少能够进展到输入任意数n时也 07/20 10:31 : → mann0614:能够跑的程度,谢谢 07/20 10:31 : 推 profyang:不好意思 昨天晚上头脑不太清楚 请忽略我上面的推文XD 07/20 13:30 : → profyang:你这基本上就是个重复组合的问题H(n,k)=C(n+k-1,k) 07/20 13:33 : → profyang:重复组合简单介绍: http://0rz.tw/HRcK7 07/20 13:34 : 推 profyang:所以你要做的只是用nchoosek这个function把所有组合列出 07/20 13:36 : → profyang:来就对了 当然你n和k太大而切n很接近k的话还是很可能爆掉 07/20 13:37 : → profyang:就是了 07/20 13:37 : → profyang: 且 07/20 13:37 简单回一下 大概像这样: n=5; k=10; b=nchoosek(k-1,n-1); %所有正整数组合数 v=1:(k-1); C=nchoosek(v,n-1); %Matlab列出所有C(k-1,n-1)的可能排列 C=[zeros(b,1),C,k*ones(b,1)]; %开始转成你要的正整数组合 D=diff(C,1,2); %所有可能 E=sum(D,2); %检验是否正确 注意因为你要取的是正整数 而一般重复排列用在这种相加是定值的是求非负整数 所以你要想成(a1-1)+(a2-1)+(a3-1)+(a4-1)+(a5-1)=10-5 也就是实际组合数会变成C(n+(k-n)-1,n-1)=C(k-1,n-1) 最後再加回去 实际上也不用特地加回去 像我这样用diff就好 最後再检验一下正不正确 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.178.106
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1405837415.A.D92.html
1F:推 mann0614:感谢p大您特地回文,解决了我的问题,也让我多学了一种 07/22 00:05
2F:→ mann0614:写法,谢谢! 07/22 00:05
3F:→ profyang:不会,不过H(n,k)的成长还是很快XD 应该k=100 n=50之类的 07/22 01:56
4F:→ profyang:就会爆了吧~除非你电脑RAM爆大 07/22 01:57







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

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

TOP