Lua 打印回型矩阵

打印回形数组排序按照如下要求打印1 2 3 412 13 14 511 16 15 610 9 8 7思路 :观察3*3,4*4 ,5*5矩阵可以得到公式:矩阵圈数为 (n+1)/2 (n表示边长),依照顺时针方向填充,每次填充 n-1个元素以长度 n = 4为例,一共会循环俩圈,第一圈填充过程1 2 3 00 0 0 00 0 0 00 0 0 01 2 3 40 0 0 50 0 0 60 0 0 01 2 3 40 0 0 50 0 0 60 9 8 71 2
摘要由CSDN通过智能技术生成

打印回形数组排序

按照如下要求打印

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

思路 :

观察3*3,4*4 ,5*5矩阵可以得到公式:矩阵圈数为 (n+1)/2 (n表示边长),依照顺时针方向填充,每次填充 n-1个元素
以长度 n = 4为例,一共会循环俩圈,第一圈填充过程
1 2 3 0
0 0 0 0
0 0 0 0
0 0 0 0

1 2 3 4
0 0 0 5
0 0 0 6
0 0 0 0

1 2 3 4
0 0 0 5
0 0 0 6
0 9 8 7

1 2 3 4
12 0 0 5
11 0 0 6
10 9 8 7

代码


--填充回形数组
function CircleArr(num)
    print("start print circle arr")
    local tab = CreateArr(num)--创建多维数组
    local row = 1--行索引
    local col = 1--列索引
    local cur = 0--当前填充数
    local circleNum =(num+1)/2--循环圈数
    for i = 1,c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua脚本编程可以很方便地实现矩阵相乘的操作。矩阵相乘是指两个矩阵的对应元素相乘后再求和的运算。 首先,我们需要用Lua语言创建两个矩阵。可以使用嵌套的Lua表来表示矩阵,其中每个内层表代表矩阵的一行。 接下来,编写一个函数来实现矩阵相乘的操作。该函数需要接收两个矩阵作为输入,并返回它们的乘积矩阵。在函数中,我们可以使用两个嵌套的循环来遍历矩阵的行和列,并在每个位置上进行元素相乘的操作。最后,将相乘的结果求和并保存到新的矩阵中。 最后,我们可以在主程序中调用这个函数来测试矩阵相乘的功能,将结果输出到控制台上。 以下是一个示例的Lua脚本实现: ```lua -- 创建两个矩阵 matrix1 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} } matrix2 = { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} } -- 定义矩阵相乘函数 function matrixMultiplication(matrix1, matrix2) rows1 = #matrix1 cols1 = #matrix1[1] rows2 = #matrix2 cols2 = #matrix2[1] -- 检查两个矩阵是否可以相乘 assert(cols1 == rows2, "矩阵无法相乘") result = {} for i = 1, rows1 do result[i] = {} for j = 1, cols2 do sum = 0 for k = 1, cols1 do sum = sum + matrix1[i][k] * matrix2[k][j] end result[i][j] = sum end end return result end -- 调用矩阵相乘函数并输出结果 matrix3 = matrixMultiplication(matrix1, matrix2) for i = 1, #matrix3 do for j = 1, #matrix3[1] do io.write(matrix3[i][j], " ") end io.write("\n") end ``` 以上示例的输出结果将是一个3x3的矩阵,内容为: 84 90 96 201 216 231 318 342 366 以上就是使用Lua脚本进行矩阵相乘的方法及示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值