24小时热门版块排行榜    

查看: 2167  |  回复: 8

maotian7658

木虫 (正式写手)

[求助] 矩阵生成[1, 0, -1]:满足总和为定值,累加和在限定范围

例如,生成3行20列的矩阵,每个元素取值为-1,0或1,1和-1的个数限定,3行的和分别为4,6,5,矩阵元素累加和不能大于5,也不能小于-3。同时1和-1按一定顺序填充,如1按照[13 12  3  18 20  9  16 5 4 14 17 6 11 10 7 19  8 1  2 15] 从头到尾放置,-1按照相反的顺序,一旦出现冲突,当前位置被放弃,考虑下一位置。
如:第一行,1和-1 的个数分别设定为9 和5,序列 [0 1 1 1 1 1 1 1 1 1 0 0 0 0 -1 -1 -1 -1 -1], 总和虽然等于4,但累加和(cumsum)为[0  1 2 3 4  5  6  7  8  9  9 9  9  9 8  7  6 5 4],不满足条件。
请问各位老师,如何能实现上述目的,能否给出具体代码。拜谢!

[ Last edited by maotian7658 on 2014-2-24 at 16:44 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maotian7658

木虫 (正式写手)

坐等大神解答!!!
2楼2014-02-24 16:45:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

【答案】应助回帖

可否解释一下这句话:
如1按照[13 12  3  18 20  9  16 5 4 14 17 6 11 10 7 19  8 1  2 15] 从头到尾放置,-1按照相反的顺序,一旦出现冲突,当前位置被放弃,考虑下一位置
3楼2014-02-24 17:01:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maotian7658

木虫 (正式写手)

引用回帖:
3楼: Originally posted by ju5200 at 2014-02-24 17:01:05
可否解释一下这句话:
如1按照 从头到尾放置,-1按照相反的顺序,一旦出现冲突,当前位置被放弃,考虑下一位置

谢谢围观,这句话的意思是存放1和-1的时候按照一定的优先级,也就是按照给出的这个序列。例子中矩阵每列含20个元素,共有20个位置,1是按照该序列从头到尾的次序存放,摆满9个位置为止,-1是从尾到头开始,也就是15,2,1,8...的顺序...遇到冲突(累加和不在范围内),放弃该位置,继续寻找下一个,只到摆满相应个数。
4楼2014-02-24 17:22:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
4楼: Originally posted by maotian7658 at 2014-02-24 17:22:24
谢谢围观,这句话的意思是存放1和-1的时候按照一定的优先级,也就是按照给出的这个序列。例子中矩阵每列含20个元素,共有20个位置,1是按照该序列从头到尾的次序存放,摆满9个位置为止,-1是从尾到头开始,也就是1 ...

有个问题:根据题意 以第一行为例,一旦1的个数确定了 第一行的-1和0的个数也都确定了,那么现在任务时到底有多少个1 第二、三行任务也是确定1的个数
不妨设为三个未知数xyz,根据矩阵和的要求可以列出两个不等式,从而xyz实际上只有一个自由度 因而可以考虑穷举法
下面确定每一行1的位置就有问题了  因为你所给的顺序序列并不是必须遵守的顺序而是可以放弃的,那么1和-1谁的优先级高呢?还有,同样是1,前面的15和2的位置谁的优先级高呢?这些问题你都要先讲明白
5楼2014-02-24 21:17:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maotian7658

木虫 (正式写手)

引用回帖:
5楼: Originally posted by ju5200 at 2014-02-24 21:17:57
有个问题:根据题意 以第一行为例,一旦1的个数确定了 第一行的-1和0的个数也都确定了,那么现在任务时到底有多少个1 第二、三行任务也是确定1的个数
不妨设为三个未知数xyz,根据矩阵和的要求可以列出两个不等式 ...

1的个数是另外确定的,问题主要研究怎么去存放1和-1. 假设3行1的个数分别为9,10,8,-1的个数可以求出为:5,4,3. 优先级的问题:对于1,优先级别是从头到尾依次降低(13比12的高);对于-1,优先级别是从尾到头,优先级别依次降低(即:15比2的高)。
6楼2014-02-25 10:14:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
6楼: Originally posted by maotian7658 at 2014-02-25 10:14:09
1的个数是另外确定的,问题主要研究怎么去存放1和-1. 假设3行1的个数分别为9,10,8,-1的个数可以求出为:5,4,3. 优先级的问题:对于1,优先级别是从头到尾依次降低(13比12的高);对于-1,优先级别是从尾到头,优先 ...

大概的解决方法应该是这样:无非一个判定条件 一个赋值语句A(n,m)=1 矩阵A是要求的矩阵 nm是对应位置的索引
只是具体实现起来可能要费一些时间
7楼2014-02-25 11:03:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maotian7658

木虫 (正式写手)

引用回帖:
7楼: Originally posted by ju5200 at 2014-02-25 11:03:31
大概的解决方法应该是这样:无非一个判定条件 一个赋值语句A(n,m)=1 矩阵A是要求的矩阵 nm是对应位置的索引
只是具体实现起来可能要费一些时间...

是的,就是要对对应的位置进行赋值,因为这个程序要嵌套进另一个程序,所有对它的效率要求比较高。可能有一些我不知道的函数或技巧,不知老兄有没有好的方法或建议?谢谢!
8楼2014-02-25 11:13:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maotian7658

木虫 (正式写手)

求高手指点!!
9楼2014-02-26 16:04:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 maotian7658 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-28 17:09 by winsaint
[基金申请] 2026年叶企孙基金 +3 bud_bud 2026-08-27 6/300 2026-08-28 11:53 by bud_bud
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见