作者newwind (ya)
站内Prob_Solve
标题Re: [问题] 上三角矩阵循序储存公式推导
时间Tue Jun 17 23:16:36 2008
※ 引述《jones86723 (jones)》之铭言:
: 其实这问题不知道要Po哪,所以想请教大大这简单的原理
: 假设有一个上三角矩阵式是
: 1 1 1 1
: 1 1 1 0
: 1 1 0 0
: 1 0 0 0
: 则A32是第9个
: 那麽这个9的公式是
: loc = n*(i-1) - i*(i-1)/2 + j
: loc=9;
: 我是想知道要如何反推这个公式
: 拜托~~~~
可以看成一个完整的梯形与多余的部分
假设多余的副份为i,矩阵大小为m
则矩阵的上底为m,下底为(m - j + 1)
所以 loc - i = ( ( m - j + 1) + m) * j / 2
j^2 - (2*m + 1)j + 2 (loc - i) = 0
j 必须为整数且小於m
将i = 0 代入,可得解
j = (2*m + 1) / 2 +- sqrt( (2*m + 1)^ 2 - 8 * loc) /2
由於j大於m所以正不符合
j 需为整数又因为这是用k=0求出的解,所以j需要用无条件舍去法求得整数
j = int(j);
i = loc - ((m - j + 1) + m) * j /2
若 i = 0 则 i = ( m - j + 1)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.104.70
※ 编辑: newwind 来自: 118.160.104.70 (06/17 23:19)
※ 编辑: newwind 来自: 118.160.104.70 (06/17 23:24)