美文网首页
规则化从文件中读取数组元素进行操作

规则化从文件中读取数组元素进行操作

作者: Ed_Lannister | 来源:发表于2018-09-20 16:50 被阅读7次
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

#define N 64

void GetInverseSbox(int Sbox[N],int inverseSbox[N]){
    for (int i=0; i<N; i++)
    {
      inverseSbox[Sbox[i]]=i;
    }
    //这里方便你查看数组的逆,如果确认没问题可以注释掉以下三行,加快运行速度
    //printf("Lannister will printf inverseSbox here");
    //for(int i=0;i<N;i++){printf("%d,",inverseSbox[i]);}
    //printf("\n");
}

int main(void){
    int count =0;
    int Sbox[N];
    int loop =0;
    int maxvalue = 0;
    FILE *fp=fopen("/home/edward/桌面/TIAN/all_ea.txt","r");
    FILE *fr=fopen("/home/edward/桌面/TIAN/done_ea.txt","w");
    printf("Lannister will get sbox here\n");
    printf("******************************************\n");
    if (fp==NULL)
    { 
    printf("fail to open the txt.\n");
    return -1;
    }
    
    while(!feof(fp)){
        //这里的fscanf会按照标准的格式进行不断的读取,一次读一个sbox
        fscanf(fp,"[%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d]\n",Sbox,Sbox+1,Sbox+2,Sbox+3,Sbox+4,Sbox+5,Sbox+6,Sbox+7,Sbox+8,Sbox+9,Sbox+10,Sbox+11,Sbox+12,Sbox+13,Sbox+14,Sbox+15,Sbox+16,Sbox+17,Sbox+18,Sbox+19,Sbox+20,Sbox+21,Sbox+22,Sbox+23,Sbox+24,Sbox+25,Sbox+26,Sbox+27,Sbox+28,Sbox+29,Sbox+30,Sbox+31,Sbox+32,Sbox+33,Sbox+34,Sbox+35,Sbox+36,Sbox+37,Sbox+38,Sbox+39,Sbox+40,Sbox+41,Sbox+42,Sbox+43,Sbox+44,Sbox+45,Sbox+46,Sbox+47,Sbox+48,Sbox+49,Sbox+50,Sbox+51,Sbox+52,Sbox+53,Sbox+54,Sbox+55,Sbox+56,Sbox+57,Sbox+58,Sbox+59,Sbox+60,Sbox+61,Sbox+62,Sbox+63);
        //这里方便你查看读取的sbox是否正确,如果确认没问题可以注释掉以下三行,加快运行速度
        //printf("Lannister will printf Sbox here");
        //for(int i=0;i<N;i++) printf("%d,",Sbox[i]);
        //printf("\n"); 
        //这里将求sbox的逆拿出去执行了
        int inverseSbox[N]={0};
        GetInverseSbox(Sbox,inverseSbox);
        //不太清楚你这里的主体逻辑,你自己可以加一些打印确保这里是按照你的想法执行的,可以先以小份数据进行验证
        int BCT[N][N]= {0};
        int detain, detaout, Sin;
        for (detain= 0; detain < N; detain++){  
        for (detaout =0; detaout< N; detaout++){
        for (Sin = 0; Sin < N; Sin++){
            if (detain == ((inverseSbox[Sbox[Sin] ^ detaout]) ^ (inverseSbox[Sbox[Sin^detain] ^ detaout]))){
                 BCT[detain][detaout] ++;
             //下面这个打印是方便你看每一次计算BCT值的过程,确认正确后可以注释掉
             //printf("Lannister will know BCT[%d][%d] increase himslef once,and BCT values is %d. \n",detain,detaout,BCT[detain][detaout]);
            }
        }
        }
    }
        //下面是求BCT中的最大值
    maxvalue = 0;
    printf("The boomerang commutative table is as follows loop = %d:\n", loop++);
        for (int i = 0; i < N; i++){
        for (int j = 0; j < N; j++){
        if ((BCT[i][j] > maxvalue)&&(i!=0)&&(j!=0)){
            maxvalue = BCT[i][j];
            //printf("glad to find a BCT value is 4.\n");   
        }
        }
    }

    if (maxvalue<=11){
        printf("If this BCT is 11 then Lannister will output it to file.\n");
        count++;    
    }
    }

    printf("The amount with BCT <11 is: %d\n",count);
    fclose(fr);
    fclose(fp);
    printf("******************************************\n");
    return 0;
}

相关文章

  • 规则化从文件中读取数组元素进行操作

  • node.js 学习五 之 文件操作

    node.js 中有同步读取文件和异步读取文件的区别 同步读取就是顺序进行,文件读取操作不进行完就不进行下一步操作...

  • java读取大文件解决思路

    1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作。...

  • 用C++从txt文件中读取x行y列的数据到数组中

    用C++++++从txt文件中读取 x 行 y 列的数据到数组中。 //读取数据到 double数组 #inclu...

  • 文件IO流

    从控制台读取输出字符从文件中写入读取字符从文件中写入读取字节文件夹操作 1. 从控制台读取输出字符 输入由Syst...

  • 多线程-读写安全

    多线程31-读写安全01-简介 文件操作(IO操作)读取文件往文件中写入内容不能允许读取和写入同时进行我们之前做的...

  • react随笔7 列表&Keys

    列表 & Keys 在JavaScript中map()函数可以对数组中的每一项元素进行定义操作,比如对数组中的元素...

  • 前端JavaScript中array数组的基础相关方法-管理数组

    一、push 压入元素,直接改变元数组,返回值为数组元素数量操作:操作原数组末尾,直接在原数组的末尾进行元素添加。...

  • 文件读写

    文件操作的读取常用的是打开、关闭文件,向文件中存入数据,读取文件中的数据。我这次用的是c语言中的FILE来进行的操...

  • fortran笔记2:数组

    数组操作: where结构可以遍历全部元素,并对满足条件色的元素进行操作。 forall结构可以操作部分数组。采用...

网友评论

      本文标题:规则化从文件中读取数组元素进行操作

      本文链接:https://www.haomeiwen.com/subject/qvynnftx.html