计算机考试-对称矩阵—东方仙盟

📅 2026/7/14 23:04:07
计算机考试-对称矩阵—东方仙盟
一、对称矩阵压缩存储分两种场景必考前提定义n 阶对称矩阵 A满足 A[i][j]A[j][i]只存下三角含对角线一维数组下标分两种数组从S[0]开始C 语言默认 0 基数组从S[1]开始软考题目常用 1 基两张图都是 1 基场景 1题目条件存下三角S[1]A[0][0]求 i≥j下三角元素前 i 行总元素数12...i2i(i1)​ 本行偏移j11 基 总下标k2i(i1)​j1 对应选择题选项C场景 2题目求 i≤j上三角元素利用对称 A[i][j]A[j][i]把行列互换代入上面公式i,j 换成 j,ik2j(j1)​i1 对应第一张图正确答案B场景 3C 语言标准 0 基数组 S [0] 存 A [0][0]i≥jk2i(i1)​j对称矩阵 C 语言压缩代码0 基#include stdio.h #define N 4 // 对称矩阵压缩存储 下三角 int main() { int A[N][N] { {1,2,3,4}, {2,5,6,7}, {3,6,8,9}, {4,7,9,10} }; // 下三角元素总数 n(n1)/2 int S[N*(N1)/2]; int k 0; // 存储下三角 ij for(int i0; iN; i){ for(int j0; ji; j){ S[k] A[i][j]; } } // 读取任意A[i][j] int getVal(int i, int j){ if(i j) return S[i*(i1)/2 j]; else return S[j*(j1)/2 i]; } printf(A[0][3] %d, getVal(0,3)); // 输出4 return 0; }二、三对角矩阵压缩存储软考高频第二张图矩阵规律三对角矩阵只有三条对角线有非 0 元素第 1 行2 个元素 (a1,1​,a1,2​)第 2~n-1 行每行 3 个元素第 n 行2 个元素 总元素数量3n−21 基下标公式题目条件M[1]a1,1​行号 i、列号 i,j 从 1 开始前 i−1 行总元素i12 个i1前 i-1 行 23∗(i−2)3i−4当前行偏移j−(i−1)1j−i2合并化简最终公式k2ij−2 对应第二张图正确答案D快速验证套公式a1,1​2∗11−21 → M[1]符合题干a1,2​2∗12−22 → M[2]a2,1​2∗21−23a2,2​4,a2,3​5完全匹配逐行存储顺序C 语言 0 基版本数组 M [0] 存 a11k2ij−3三对角矩阵 C 语言压缩代码#include stdio.h #define N 4 // n阶三对角矩阵 1基逻辑数组0基存储 int main() { // 4阶三对角矩阵行i:1~4列j:1~4 int A[N1][N1] { {0,0,0,0,0}, {0,1,2,0,0}, {0,3,4,5,0}, {0,0,6,7,8}, {0,0,0,9,10} }; int M[3*N-2]; // 总元素3n-2 int pos 0; // 按行压缩存入一维数组 for(int i1; iN; i){ // 每行有效列范围 ji-1, i, i1 且1jN for(int ji-1; ji1; j){ if(j1 jN){ M[pos] A[i][j]; } } } // 根据i,j(1基)获取压缩下标 0基数组 int getM(int i, int j){ return 2*i j - 3; } printf(a2,3 压缩下标%d值%d, getM(2,3), M[getM(2,3)]); return 0; }三、软考速记公式汇总直接背1. 对称矩阵一维数组 1 基 S [1]A [0][0]下三角 i≥jk2i(i1)​j1上三角 i≤j对称转换k2j(j1)​i12. 对称矩阵C 语言 0 基 S [0]A [0][0]i≥jk2i(i1)​jijk2j(j1)​i3. 三对角矩阵题目 1 基 M [1]a₁₁有效元素 ai,j​ 满足 ∣i−j∣≤1压缩下标k2ij−24. 三对角矩阵C 语言 0 基k2ij−3四、做题万能技巧代入特殊值验证把 i0,j0 /i1,j1 代入选项快速排除错误答案 例第一张题 i0,j0代入 B 选项 20∗(01)​011刚好 S [1]A [0][0]直接锁定 B看清下标基准软考选择题绝大多数是 1 基一维数组C 代码写题默认 0 基两套公式不要混用对称矩阵看到 i≤j 立刻交换 i、j 代入下三角公式三对角矩阵每行只有 2/3 个有效元素公式直接记 2ij 相关人人皆为创造者共创方能共成长每个人都是使用者也是创造者是数字世界的消费者更是价值的生产者与分享者。在智能时代的浪潮里单打独斗的发展模式早已落幕唯有开放连接、创意共创、利益共享才能让个体价值汇聚成生态合力让技术与创意双向奔赴实现平台与伙伴的快速成长、共赢致远。原创永久分成共赴星辰大海原创创意共创、永久收益分成是东方仙盟始终坚守的核心理念。我们坚信每一份原创智慧都值得被尊重与回馈以永久分成锚定共创初心让创意者长期享有价值红利携手万千伙伴向着科技星辰大海笃定前行拥抱硅基 生命与数字智能交融的未来共筑跨越时代的数字文明共同体。东方仙盟拥抱知识开源共筑数字新生态在全球化与数字化浪潮中东方仙盟始终秉持开放协作、知识共享的理念积极拥抱开源技术与开放标准。我们相信唯有打破技术壁垒、汇聚全球智慧才能真正推动行业的可持续发展。开源赋能中小商户通过将前端异常检测、跨系统数据互联等核心能力开源化东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案让更多商家能够平等享受数字转型的红利。共建行业标准我们积极参与国际技术社区与全球开发者、合作伙伴共同制定开放协议 与技术规范推动跨境零售、文旅、餐饮等多业态的系统互联互通构建更加公平、高效的数字生态。知识普惠共促发展通过开源社区 、技术文档与培训体系东方仙盟致力于将前沿技术转化为可落地的行业实践赋能全球合作伙伴共同培育创新人才推动数字经济 的普惠式增长阿雪技术观在科技发展浪潮中我们不妨积极投身技术共享。不满足于做受益者更要主动担当贡献者 。无论是分享代码、撰写技术博客还是参与开源项目 维护改进每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地我们携手在此探索硅基 生命为科技进步添砖加瓦。Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Dont just be the one reaping all the benefits; step up and be a contributor too. Whether youre tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. Were gonna team up and explore the whole silicon - based life thing, and in the process, well be fueling the growth of technology