斜折对称方阵

#include <math.h>
#include <stdio.h>
void main()
{
    int i,j,m,n,a[30][30];
    printf("  请确定方阵阶数(奇数)n: ");  
    scanf("%d",&n);
    if(n%2==0)
    { 
        printf(" 请输入奇数!");
        return;
    }
    m=(n+1)/2;
    for(i=1;i<=n;i++)            
        for(j=1;j<=n;j++)
        { 
            if(i<=m && j<=m || i>m && j>m) 
                a[i][j]=abs(i-j);         // 方阵左上部与右下部元素赋值      
            if(i<=m && j>m || i>m && j<=m)
                a[i][j]=abs(i+j-n-1);     // 方阵右上部与左下部元素赋值  
        }
        printf("  %d阶对称方阵为:\n",n);
        for(i=1;i<=n;i++)
        { 
            for(j=1;j<=n;j++)          // 输出对称方阵 
            printf("%3d",a[i][j]);
            printf("\n");
        }
 }

 

 

 

转载于:https://www.cnblogs.com/liao-pxsoftware15/p/7912956.html

### 判断矩阵是否为对称方阵的方法 在Python中,判断一个矩阵是否为对称方阵可以通过比较矩阵与其转置矩阵的元素是否相等来实现。以下是具体的代码示例: ```python import numpy as np def is_symmetric(matrix): # 矩阵为空的情况 if len(matrix) == 0: return True # 检查是否为方阵 if len(matrix) != len(matrix[0]): raise ValueError("输入矩阵不是一个方阵") # 转换为NumPy数组以便操作 matrix = np.array(matrix) # 判断矩阵是否等于其转置矩阵 return np.array_equal(matrix, matrix.T) # 示例矩阵 matrix1 = [[1, 2, 3], [2, 4, 5], [3, 5, 6]] matrix2 = [[1, 0, 0], [2, 4, 0], [3, 5, 6]] # 测试矩阵是否为对称矩阵 print(is_symmetric(matrix1)) # 输出: True print(is_symmetric(matrix2)) # 输出: False ``` #### 代码解析 1. 首先检查矩阵是否为空。如果矩阵为空,则认为它是对称的[^1]。 2. 检查矩阵是否为方阵。如果不是方阵,则抛出异常,因为只有方阵才可能成为对称矩阵[^2]。 3. 使用 `np.array_equal` 方法比较原矩阵与它的转置矩阵是否相等。如果相等,则该矩阵是对称矩阵[^3]。 ### 注意事项 - 在实际应用中,可以使用 NumPy 库中的函数 `matrix.T` 来快速获取矩阵的转置[^4]。 - 如果矩阵包含浮点数,由于浮点数精度问题,建议使用 `np.allclose` 替代 `np.array_equal` 进行比较[^5]。 ```python def is_symmetric_with_tolerance(matrix, tol=1e-8): matrix = np.array(matrix) return np.allclose(matrix, matrix.T, atol=tol) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值