【算法】蛇形阵:一字阵和回形阵(螺旋阵)的原理及C实现

一字阵

是指将数字按大小顺序相连后,形成首尾相连的一字形的矩阵

常见形式

斜线型

1 2 6
3 5 7
4 8 9
分析思路
   0 1 2
0 1 2 6
1 3 5 7
2 4 8 9
整个矩阵关于对角线对称分为上三角和下三角。则可以先构造上三角(包括斜线),再构造下三角。
如果以斜线划分,如(1)(2,3)(4,5,6)(7,8)(9),则每条斜线都有一个最大值和最小值。就可以定义变量num,从1开始递增,将num填入相应的位置。因此,我们可以找每条斜线的最小值,从最小值开始在斜线上填入num。相当于用笔从1开始按顺序连接矩阵。
难点在于如何根据矩阵的大小来确定每个点的行列关系,并递增或递减。我是通过纸笔分析得到的行列关系,然后手工模拟找出问题。具体关系在代码的注释中。

横线型

1 2 3
6 5 4
7 8 9
分析思路
横线型比斜线型简单,只需要通过判断行的奇偶性来控制循环变量,来填入num。

代码实现

斜线型

<pre name="code" class="cpp">#include<stdio.h>
int main()
{
    int n,num,matrix[30][30];
    int i,j;
    while(scanf("%d",&n)>0)
    {
        num=0;
        //遍历连接上三角的斜线,包括对角线
        for(i=0; i<n; ++i)
        {
            if(i%2==0)  //则最小值在下面
            {
                for(j=i; j>=0; --j) //上三角第i条斜线有i个点
                    matrix[j][
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于频控雷达的盲速目标检测算法需要考虑到雷达数据的特点,以及目标检测的算法流程。以下是一个基于频控雷达的盲速目标检测算法的设计和实现步骤: 1. 雷达数据预处理:对于频控雷达,可以采用FFT进行数据处理。首先对接收到的信号进行FFT变换,然后把频域数据映射到距离域,得到距离-角度-速度的三维数据。 2. 目标检测算法:一般使用基于卡尔曼滤波的多目标跟踪算法。首先对雷达数据进行目标检测,得到每个目标的位置、速度、距离等信息,然后使用卡尔曼滤波对目标进行跟踪,得到目标的运动轨迹。基于运动轨迹可以进一步对目标进行分类。 3. 目标分类:目标分类可以采用传统的机器学习算法或者深度学习算法。传统的机器学习算法如SVM、KNN等可以针对目标的特征进行分类。深度学习算法如CNN、RNN等可以直接对雷达数据进行分类。分类后可以得到目标的类型,如车辆、行人等。 4. 目标跟踪:目标跟踪可以采用多种算法,如卡尔曼滤波、粒子滤波等。对于基于频控雷达的盲速目标检测算法,卡尔曼滤波算法是比较常用的。 5. 结果输出:最后将检测到的目标位置、速度、距离、类型等信息输出。 需要注意的是,基于频控雷达的盲速目标检测算法需要根据具体的应用场景进行调整和优化,比如对雷达数据进行滤波、降噪等处理,以及对目标跟踪算法进行优化等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值