其他典型算法之矩阵应用-专项训练浙江2022届选考专用(教师版).docxVIP

其他典型算法之矩阵应用-专项训练浙江2022届选考专用(教师版).docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
其他典型算法之矩阵应用 【例1】 把矩阵A的行和列互相交换所产生的矩阵称为A的转置矩阵,这一过程称为矩阵的转置,如 。以下VB6程序实现矩阵的转置,请在划线处填入正确的语句实现功能。 Const m = 4 Const n = 5 Dim a(1 To m * n) As Integer Dim b(1 To m * n) As Integer Private Sub Command1_Click() Dim i As Integer, j As Integer List1.Clear List2.Clear Randomize For i = 1 To m * n 生成源矩阵 a(i) = Int(Rnd() * 89 + 10) Next For i = 1 To m   显示源矩阵 s = ″ ″ For j = 1 To n   s =①             ? Next List1.AddItem s Next For i = 1 To n   生成并显示转置矩阵 s = ″″ For j = 1 To m   b((i - 1) * m + j) =②     ?   s = s + Str(b((i - 1) * m + j)) Next List2.AddItem s Next End Sub 答案:①s+Str(a((i-1)*n+j)) ②a((j-1)*n+i) 解析:本程序用一维数组a保存矩阵数据Amn。转置后的矩阵为Anm,对于矩阵中的元素aij,对应一维数组元素为a((i-1)*n+j),转置后对应的元素是aji,对应一维数组元素为a((j-1)*m+i)。因此,①处应填入的语句是s + Str(a((i - 1) * n + j)),②处应填入的语句是a((j - 1) * n + i)。 【例2】.(2017·11浙江选考)由数组a生成数组b的方法描述如下: (1)将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割。 (2)对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中。 (3)数组a分割后的剩余元素(个数小于4),直接依序存储到数组b中。 例如n=140时,可依次分割出3个数据块,元素的个数分别为64(8×8)、64(8×8)、9(3×3),剩余元素为3个。 “方阵转换法”过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,从该数字方阵中按列序得到转换后元素的次序。以3×3数据块为例,转换过程如下图所示: 小明依据上述描述设计了如下VB程序。请回答下列问题: (1)当n=120时,分割出的第3个数据块元素个数为     。? (2)请在划线处填入合适的代码。 Const n = 120 Dim a(1 To n) As Integer Dim b(1 To n) As Integer Private Sub Command1_Click() Dim m As Integer, i As Integer Dim Start As Integer 当前未分割数据的第1个元素下标 Dim Left As Integer  当前未分割数据的个数 Dim pa As Integer   数组a的下标 Dim pb As Integer   数组b的下标 读取n个转换前的数据,依次存储到a(1)、a(2)、…、a(n)中,代码略 m = 8 Start = 1 Left = n Do While Left 3 If Left m * m Then  m =①     ? Else pa = Start pb = Start For i = 1 To m * m b(pb) = a(pa) pb = pb + 1 If i Mod m = 0 Then  ②     ? Else   pa = pa + m End If Next i ③     ? Start = Start + m * m  End If Loop For i = Start To n b(i) = a(i) Next i 依次输出转换后数据b(1)、b(2)、…、b(n)中,代码略 End Sub 答案: (1)4 (2)①m-1或int[sqr(left)] ② pa=pa-m* (m-1)+1或pa=Start+i\m ③left=left-m* m 解析: (1)n=120时,可依次分割出 3 个数据块,元素的个数分别为 64(8×8)、49(7×7)、4(2×2),剩余元素为 3 个。所以第 3 个数据块为 4 个元素。 (2)①剩余数量 Left m * m,意味着当前剩余数量不够分

您可能关注的文档

文档评论(0)

白雪clever + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档