QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 9918|回复: 8
打印 上一主题 下一主题

[代码资源] matlab排列组合问题

[复制链接]
字体大小: 正常 放大
tansuozhe 实名认证       

1

主题

0

听众

7

积分

升级  2.11%

该用户从未签到

自我介绍
地方第三方士大夫多少
跳转到指定楼层
1#
发表于 2009-12-26 14:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
各位老师:* |! b2 D( \0 T7 p
     我是初学matlab。现在遇到一个难题,用matlab的函数combntns()" G+ C+ S' A6 e* r1 L3 W/ |
求1-210共210个自然数的组合,我算从210个自然数中取3个进行组合(不重复),
9 B+ o4 D7 H! @5 X. }4 @& z1 n3 C在matlab命令窗口输入如下函数:( p& t. j% ~- |
》combntns(1:210,3)/ t5 ?% V& H# _- X" y7 G
运行计算都正常的列出了所有组合数,可是想算从210个自然数中取20个进行组合(不重复)
5 {: b& _% U9 s# N( J6 s我知道这样的组合数非常大为:4.49333E+27,我在在matlab命令窗口输入如下函数:) {/ W1 C! z: _: g' j: l/ d8 W2 E
》combntns(1:210,20), m$ h; k' y4 u3 a% ^* ^
提示出错信息如下:
) d0 k. c' q: L) X, m# [Error in ==> combntns at 71
8 G1 i9 ~' P, Z4 A# B; E, u  out=[out; choicevec(i)*ones(size(tempout,1),1) tempout]
2 Z- e3 c! M; n1 Y" O/ }意思是内存不够吧,现在想请教一下几个问题:
' k- A7 w5 S2 r5 `' }! m1  提示的内存不够是指内存条不够大,还是硬盘空间不够,这样的大的求组合数,matlab是. J# J+ z7 @- R" |6 i4 w! C$ c. k, u- P
   否有函数能胜任,如果有,请问是什么函数?
7 k0 }5 H- X# E6 o2,如果matlab的函数不能胜任,请问我如何用M文件编程计算从210个自然数中取20个的组合数并列出,; x, W' H2 R; p6 M
   (我想可能一次性算出不大可能),如果分段计算,应该如何编程,烦请各位老师提供一下代码,* v% ]  M, K0 d8 z+ h( m
    期盼各位老师指教......
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

1341

主题

738

听众

2万

积分

数学中国总编辑

  • TA的每日心情
    衰
    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组: 2011年第一期数学建模

    群组: 第一期sas基础实训课堂

    群组: 第二届数模基础实训

    群组: 2012第二期MCM/ICM优秀

    群组: MCM优秀论文解析专题

    对于你的问题一:是内存不够大,非外存不够大;不管是任何函数都不行,因为一次算出所有组合数的可能性为00 h. o& d- F' N# R( t. B* b
                            所以任何函数都不可能在一次执行这么多,这是硬件资源所**的,而非软件所能左右
    9 e1 l4 Z& s( Q  {, A' Y" \( y对于你的问题二:你可以先将210分成7段,即:0-25,26-50,.....,201-210;: K- d0 c& `! m6 n
                    然后按下列几步进行:
    * J5 J! g9 O6 s, O(1)在第一段内搜索排列,然后在第二段内搜索排列,然后在第三段内搜索排列。。。。。。。。。这样依次搜索各段的排列,搜索完后,保存数据,进入下一步;: ~0 y! c, v  N, L8 R$ X! E7 Z
    (2)然后两段组合搜索排列,注意这次是在两段内搜索,所以得到的排列需要包含两端内的数据
    ( ]; t3 m- Z2 g$ T- q(3)然后三段组合8 D9 x: g; t6 v; Y. @% M+ I
    依次下去
    5 N3 T% K, i9 P' e! a(。。。)最后到10段组合;3 p$ t" c3 T$ ~
    这样才能处理过来。虽然比较麻烦,但是只能这样啦,除非在大型机上就不存在这种问题啦;
    已有 1 人评分金币 收起 理由
    大笨象 + 6 写的不错--

    总评分: 金币 + 6   查看全部评分

    回复

    使用道具 举报

    1341

    主题

    738

    听众

    2万

    积分

    数学中国总编辑

  • TA的每日心情
    衰
    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组: 2011年第一期数学建模

    群组: 第一期sas基础实训课堂

    群组: 第二届数模基础实训

    群组: 2012第二期MCM/ICM优秀

    群组: MCM优秀论文解析专题

    我之所以选择每段的长度是25,是因为我的机子在长度为25时,反应快,而且效果比较好
    回复

    使用道具 举报

    1341

    主题

    738

    听众

    2万

    积分

    数学中国总编辑

  • TA的每日心情
    衰
    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组: 2011年第一期数学建模

    群组: 第一期sas基础实训课堂

    群组: 第二届数模基础实训

    群组: 2012第二期MCM/ICM优秀

    群组: MCM优秀论文解析专题

    这么大量的计算和数据,用小型机计算有点太面前啦,应该用大型机计算比较合适
    " x+ Z8 z6 G1 k( O. _  E! E2 _) _3 x6 D7 Y# k: W3 c1 W
    我试了个每段长为27,我的机子都要计算将近两分钟(我的内存2G),更不用说你把所有的都计算完,估计至少得一天吧,而且还没有休息
    回复

    使用道具 举报

    0

    主题

    0

    听众

    9

    积分

    升级  4.21%

    该用户从未签到

    自我介绍
    大家好!我是酱油王!
    很好 顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    回复

    使用道具 举报

    兄弟 实名认证       

    0

    主题

    5

    听众

    556

    积分

    升级  85.33%

    该用户从未签到

    新人进步奖

    群组: 西南大学建模组

    顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    回复

    使用道具 举报

    hupanfeng 实名认证       

    0

    主题

    3

    听众

    149

    积分

    升级  24.5%

    该用户从未签到

    自我介绍
    hello~大家好~
    回复

    使用道具 举报

    0

    主题

    4

    听众

    304

    积分

    升级  1.33%

  • TA的每日心情
    开心
    2014-1-1 12:58
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    回复

    使用道具 举报

    0

    主题

    4

    听众

    304

    积分

    升级  1.33%

  • TA的每日心情
    开心
    2014-1-1 12:58
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-26 08:40 , Processed in 0.921992 second(s), 96 queries .

    回顶部