试算算法

xien126 2009-12-09 03:34:47
已知各行,各列的合计数
实现自动计算数值分配到已经标记的单元格,满足行列合计的要求,如图
A B C D 行合计
行1 1 1 1 140

行2 1 1 1 100

行3 1 1 80

列合计 80 80 80 80

其中的80,140,100,80都为合计数,该处只做参考,并不能满足实际要求

A1 + D1 = 140
A2 + C1 + D1 = 100
B2 + B3 = 80
A1 + A2 = 80
B1 + B3 = 80
C2 + C3 = 80
D1 + D2 = 80

计算出A1~D3标记为1的单元格的值,满足上述条件及可
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq6287976 2009-12-09
  • 打赏
  • 举报
回复
线性代数 问题
  • 打赏
  • 举报
回复
我觉得楼主的公式有误,更正如下:
A1 + D1 = 140
A2 + C2 + D2 = 100
C3 + B3 = 80
A1 + A2 = 80
B1 + B3 = 80
C2 + C3 = 80
D1 + D2 = 80

int A1 = rand() & 0x20;
int D1 = 140 - A1;
int A2 = 80 - A1;
int D2 = 80 - D1;
int C2 = 100 - A2 - D2;
int C3 = 80 - C2;
int B3 = 80 - C3;
int B1 = 80 - B3;
Dolphin_001 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 litaoye 的回复:]
都是正整数么?
应该算是线性规划问题!8个变量,7个方程,也存在无解的可能,另一方面如果有解,可能不止1个解!
[/Quote]
既然你解出一个了,说明还存在无数个解的。
绿色夹克衫 2009-12-09
  • 打赏
  • 举报
回复
先按照列平分

40 40 40 140(小了)
40 40 40 100(大了)
40 40 80
80 80 80 80

调整140和100的公共部分

60 40 40 140(小了)
20 40 40 100(大了)
40 40 80
80 80 80 80

OK了
绿色夹克衫 2009-12-09
  • 打赏
  • 举报
回复
都是正整数么?
应该算是线性规划问题!8个变量,7个方程,也存在无解的可能,另一方面如果有解,可能不止1个解!
xien126 2009-12-09
  • 打赏
  • 举报
回复
是呢,不需要唯一的答案,随机生成一组就行了
fire_woods 2009-12-09
  • 打赏
  • 举报
回复
m+n個約束, m*n個未知數, 一般都是沒有唯一解的.

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧