稀疏矩阵与压缩矩阵,因为这个张三成功牵了学姐的手

本文通过一场五子棋比赛引入,讲述了稀疏矩阵和压缩矩阵的概念及其在存储棋盘状态中的应用。学姐采用常规二维数组表示,而张三则提出压缩矩阵方案,更高效地存储非零元素。文章详细解释了压缩矩阵的原理,并提供了Java代码实现,包括稀疏矩阵与压缩矩阵之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1-应用场景举例

        有一天,大一的张三和学姐在线上玩五子棋,那可是女神级别的学姐,张三很喜欢她,学姐说如果张三赢了就答应做张三的女朋友。
在这里插入图片描述

        于是一场博弈开始了,张三就开始大显身手。
在这里插入图片描述
        玩到这里,突然学校断网了,没法再继续了,但是这个赌局已经开始了,还没有胜负,岂能就这样结束,再说张三也不甘心,这毕竟是可以牵女神手的机会。毕竟大家都是计算机专业的,于是学姐灵机一动,换了一种玩法,看谁能优雅又快速的用程序把这个棋盘的结果给保存下来,于是另一场战争打响了。

2-学姐的方案-常规二维数组

        学姐心想,嘿,你个小样的学弟,刚开始学习编程语言不久吧,数据结构肯定还没学吧,还敢接受学姐的挑战,看我怎么秒杀你。
在这里插入图片描述
        学姐头轻轻一转就得出了方案,既然棋盘是15x15的那就是二维数组A(0:14,0:14)来表示

  • 黑色的棋子表示为:1
  • 白色的棋子表示为:2
  • 空白的棋盘表示为:0

        于是学姐就得出了自己的数据结构,展开结果为:
0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 1 0 1 1 2 0 0 0 0 0 0 0 0 0 0 0 2 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \begin{matrix} 0_0 & 0_1 & 0_2 & 0_3 & 0_4 & 0_5 & 0_6 & 0_7 & 0_8 & 0_9 & 0_{10} & 0_{11} & 0_{12} & 0_{13} & 0_{14} \\ 0_1 & 0 & \textcolor{red}{1} & \textcolor{red}{1} & \textcolor{red}{2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_2 & 0 & \textcolor{red}{2} & \textcolor{red}{2} & \textcolor{red}{2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_3 & 0 & \textcolor{red}{1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \textcolor{red}{1} & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_5 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_6 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_7 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{8} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{9} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{10} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{11} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{12} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{13} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0_{14} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{matrix} 000102030405

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深知她是一场梦

你打不打赏,我都会一直写博客

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值