c语言解决-分治法在数值问题中的应用—矩阵相乘问题

c语言解决-分治法在数值问题中的应用—矩阵相乘问题

  1. 实验题目
    设M1和M2是两个n×n的矩阵,设计算法计算M1×M2 的乘积。
    2.实验目的
    1)提高应用蛮力法设计算法的技能;
    2)深刻理解并掌握分治法的设计思想;
    3)理解这样一个观点:用蛮力法设计的算法,一般来说,经过适度的努力后,都可以对其进行改进,以提高算法的效率。
  2. 实验要求
    1)设计并实现用BF方法求解矩阵相乘问题的算法;
    2)设计并实现用DAC方法求解矩阵相乘问题的算法;
    3)以上两种算法的输入既可以手动输入,也可以自动生成;
    4)对上述两个算法进行时间复杂性分析,并设计实验程序验证
    分析结果;
    5)设计可供用户选择算法的交互式菜单(放在相应的主菜单下)。

代码(需自行更改)

代码块语法遵循标准markdown代码,例如:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>
#include<stdlib.h>
#include<time.h>
#define mymalloc malloc
#define myfree free
#define  MAXRAND 10
#define  MATRIX_NUM 2 
#define  BF 1
#define ADC 2

struct matrix{
    int row_and_col;
    int** value;
};

void 
init_matrix(struct matrix* m, int is_assign_value){
  //给矩阵随机值

    m->value = (int **)mymalloc(m->row_and_col*sizeof(int*));
    for (int i = 0; i < m->row_and_col; i++){
        m->value[i] = (int *)mymalloc(m->row_and_col*sizeof(int));
    }
    if (is_assign_value){
  //是否赋值
        for (int j = 0; j < m->row_and_col; j++)
            for (int k = 0; k < m->row_and_col; k++)
                m->value[j][k] = (int)(rand() % MAXRAND + 1);
    }

}
//设置两个矩阵的行和列
int 
set_row_col(struct matrix* m, void(*callback)(struct matrix* m,int p)){

    if (callback == NULL){
        return 0;
    }

    //改为方阵
    m->row_an
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值