找回密码
 入驻
搜索
查看: 74002|回复: 8

一道C++数值计算题

[复制链接]
发表于 2007-4-28 21:55:17 | 显示全部楼层 |阅读模式
打网络游戏得到一个极品装备,价值 495 思明论坛!

   下次努力哦!……
带状矩阵A [5][5]
{1     6   10           }
{13   2    0    11     }
{      14   3    8   12}
{            0     4    9}
{                  16   5}


要求转换为矩阵B [5][4]主对角线1、2、3、4、5为一列,依然分割矩阵
{0   1   6   10}
{13  2  0   11}
{14  3  8   12}
{0    4  9   0 }
{16  5  0   0 }
压缩存储,空闲单元用0元素填充

我已经知道怎么做了,想看看大伙的算法
发表于 2007-4-28 22:06:58 | 显示全部楼层
数学=头晕````````
回复

使用道具 举报

发表于 2007-4-28 22:19:26 | 显示全部楼层
你参加了我们组织的狩猎,获得了 394 思明论坛的猎物兑现金!

   下次努力哦!……
呃....
C++没学好....
回复

使用道具 举报

发表于 2007-4-28 22:28:25 | 显示全部楼层
:sad   C++偶也没学好。。。。。。。。。。。。!

:handshake
回复

使用道具 举报

 楼主| 发表于 2007-4-28 22:32:48 | 显示全部楼层
你在街头拐角捡到一条珍珠项链,交还了失主,失主送给你 444 思明论坛的酬金!热心值加 3

   下次努力哦!……
我的输出乱了一点

  1.                 double** fm = new double*[5];
  2.         for(i=0;i<5;i++)
  3.                 fm[i] = new double[5];
复制代码

矩阵是这样初始化的,有没有比这更酷的初始化方法:lol
回复

使用道具 举报

发表于 2007-4-29 18:38:20 | 显示全部楼层
你路见不平,拔刀相助,花掉你 62 思明论坛的买刀钱,热心值加 3

   下次努力哦!……
用位移不是更好吗?、。
回复

使用道具 举报

发表于 2007-4-29 18:39:32 | 显示全部楼层
我的C++都还给老师啦`:sad
回复

使用道具 举报

 楼主| 发表于 2007-4-29 23:23:48 | 显示全部楼层
你在马路边,捡到了一分钱,找不到警察叔叔就把它放到了你的口袋里边!

   下次努力哦!……
原帖由 众香之主 于 2007-4-29 18:38 发表
用位移不是更好吗?、。

本来就是位移啊,但是你要有个算法,让无论什么情况下都能转换带状矩阵,并且你要找到那个带宽的规律,不能乱给空间:lol
  1. double** bda = new double*[n];  //在堆中分配了n行,行数要和A一样
  2. for(int i=0;i<n;i++)                         //为行分配空间
  3. {                          
  4.   bda = new double[p+r+1];     //每行需分配p+r+1的空间,这里的p是左带宽,r是右带宽
  5.   bda += p;                            //每行偏移
  6. }

  7. for(int i=0;i<n;i++)
  8. {
  9.   int ip =max(i-p,0);                  //max()和min()函数在<algorithm>里,不想用的话也可以自己写
  10.   int ir =min(i+r,n-1);
  11.   for(int j =ip;j<=ir;j++)            //确保赋的值都在A的主对角线和3条次对角线中
  12.    bda[j-i]=A[j];
  13. }

  14. for(int i=0;i<n;i++)
  15. {
  16.     bda -=p;
  17.     delete[] bda;                 //释放每行
  18. }
  19.   delete[] bda;                      //释放双重指针
复制代码

[ 本帖最后由 zkkpkk 于 2007-4-30 10:23 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-4-30 10:52:53 | 显示全部楼层
原来版主是以前的劳动委员:titter
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-11-16 16:15 , Processed in 0.053190 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表