什么叫空心方阵,什么叫实心方阵

什么叫空心方阵,什么叫实心方阵,第1张

空心方阵每层有每一层的人数,每层有每一层的边数,相邻两层的层数差8,相邻两层的边数差2,这是空心方阵的特点。

空心方阵:

(最外层每边人数)2-(最外层每边人数-2×层数)2=中空方阵的人数。

或者是

(最外层每边人数-层数)×层数×4=中空方阵的人数。

总人数÷4÷层数+层数=外层每边人数。

实心方阵:(外层每边人数)2=总人数。

扩展资料:

空心方阵的总数公式另一种推导:

设层数为N,最外层单边数为X,那么最外层的人数是

A1=4X-4

最外层比下一层单边数少2,所以第二层人数为

A2=4(X-2)-4

如此类推:

A3=4(X-4)-4

A4=4(X-6)-4

明显这是一个公差为8的等差数列,代入等差数列公式:

SN=NA1+[N(N-1)D]/2

可得:

SN=N(4X-4)-4(N^2-N)

SN=4N(X-N)

就是所谓:(外层每边数量-层数)*层数*4

方阵代数学

n×n阶矩阵被称为n阶方阵,即方阵就是行数与列数一样多的矩阵。数学中,指行数及列数皆相同的矩阵,即方块矩阵。

参考资料来源:百度百科-空心方阵

百度百科-方阵

用gedit编辑C程序,gcc编译连接,gdb调试,看man手册,都有详细的介绍。编辑也可以在windows里面编辑:将linux里的文件共享到windows里,然后使用widows下比较好的编辑器就可以编辑了。

3个线程使用的都是同一个info

代码 Info_t *info = (Info_t *)malloc(sizeof(Info_t))只创建了一个info

pthread_create(&threads[i],NULL,calMatrix,(void *)info)三个线程使用的是同一个

我把你的代码改了下:

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

int mtc[3] = { 0 } // result matrix

typedef struct

{

    int prank

    int *mta 

    int *mtb

}Info_t

void* calMatrix(void* arg)

{

    int i

    Info_t *info = (Info_t *)arg

    int prank = info->prank

    fprintf(stdout,"calMatrix : prank is %d\n",prank)

    for(i = 0 i < 3 i++)

        mtc[prank] += info->mta[i] * info->mtb[i]

    return NULL

}

int main(int argc,char **argv)

{

    int i,j,k = 0

    int mta[3][3]

    int mtb[3] = { 1 }

    Info_t *info = (Info_t *)malloc(sizeof(Info_t)*3)

    for(i = 0 i < 3 i++)

        for(j = 0 j < 3 j++)

            mta[i][j] = k++

    /* 3 threads */

    pthread_t *threads = (pthread_t *)malloc(sizeof(pthread_t)*3)

    fprintf(stdout,"\n")fflush(stdout)

    for(i = 0 i < 3 i++)

    {

        info[i].prank = i

        info[i].mta = mta[i]

        info[i].mtb = mtb

        pthread_create(&threads[i],NULL,calMatrix,(void *)(&info[i]))

    }

    for(i = 0 i < 3 i++)

        pthread_join(threads[i],NULL)

    fprintf(stdout,"\n==== the matrix result ====\n\n")

    fflush(stdout)

    for(i = 0 i < 3 i++)

    {

        fprintf(stdout,"mtc[%d] = %d\n",i,mtc[i])

        fflush(stdout)

    }

    return 0

}

矩阵的计算我忘记了,你运行看看结果对不对


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7311890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存