求救:判断二维数组的是否有解、解集(再次提起)大家帮帮忙呀!! (200分)

  • 主题发起人 主题发起人 ydfq
  • 开始时间 开始时间
Y

ydfq

Unregistered / Unconfirmed
GUEST, unregistred user!
CanP:array[0..m,0..n] of integer;
MaxP:array[0..m,0..n] of integer
//已知
nM:array[0..m] of integer
//已知>=0
nT:array[0..n] of integer
//已知>=0
nTF:array[0..n] of integer
//已知>=0
关系:
CanP[i,j]每列之和=nT;
CanP[i,j]×nTF[j]之和=nM
0<=CanP[i,j]<=MaxP[i,j]
问题:求2维动态数组CanP的解。任意指定一个CanP[i,j]的值,得到多组解。
请问有什么算法?我只想到用穷举法:(

改个问题也行,如何判断是否有解?
 
我也只想到这个办法了
数据结构都忘的差不多了了
 
呵呵,也是啊,数学早忘光了:(可惜现在书也不在这。隐约想起好像可以化为什么矩阵
可全不记得了:(
 
一条一条地计算不就得了!
你把问题表达清楚了,你的解大即也就出来了
 
还是穷举啊?就是不想如此啊:)
 
问题不太明白
 
条件是
CanP的第i列的合计=nT的第i列
CanP的第i行的每列×nF的对应列之和=nM
0<=CanP[i,j]<=MaxP[i,j]
它的解肯定有很多,可以指定任一CanP[i,j]的值,得到CanP[i,j]=指定值的任意一组解.
我用穷举法和随机回溯也能得到,可效率太低。
还有什么好的算法?请各位大大指教。
 
告急!!请指教!
 
是不解N阶线性方程组啊,方法很多呀,LU分解,高斯削去
 
是是,我也知道很多,我可记不得了:(
算法的书啊,数学书什么的都不在这,哪有下载啊?:)
 
哪有算法下载?请大大们帮帮忙。
 
我找了半天都没有找到,哪位大大能帮帮我?
 
这是个整数规划,不是普通的方程求解!!!!!!!!!!
 
To jsxjd:
对,jsxjd大大说的对。哪有这算法的下载?
 
你可以找本《运筹学》的书看看,实现起来不是很困难。
 
我手上没有,急着用,怎么办?:(
 
哪有相关算法的资料?我没有找到,请各位大大帮帮忙!
 
我用随机凑数和回溯的方法也能得到正确的解,效率太低:(
并且如果无解时间更长:(
有没有什么算法能迅速的判断无解的情况?
 
怎么还没解决!

如果你有数学功底的话,去找复旦 魏国华教授编的一本《运筹学》
里面对每种方法都列出了算法步骤。
十六年前,他刚出版时送了我一本。
 
多人接受答案了。
 
后退
顶部