zoukankan      html  css  js  c++  java
  • 20165321 实验三 敏捷开发与XP实践-4

    Java密码学程序

    import java.util.*;
    public class Lfsr {
        public static void main(String[] args) {
            System.out.println("请输入移位寄存器的级数n:");
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            System.out.println("请设置初态:");
            int[] a = new int[n];//状态数
            int  sum=1;
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
                sum=2*sum;
            }
            System.out.println("请输入结构常数:");//形如[c1,c2,c3,c4,c5]
            int[] c = new int[n];//存储的为反馈函数,与反馈函数的对应规律为:若结构常数为[0,1,0,1],则反馈函数为
            for (int i = n-1; i >= 0; i--) {
                c[i] = sc.nextInt();
            }
            System.out.println("线性移位寄存器输出序列为:");
            for (int i = 0; i <sum-1; i++) {
                System.out.printf("%d", a[0]);
                operate1(a, c, n);
            }
            System.out.println(" ");
            System.out.println("对偶移位寄存器输出序列为:");
            for(int i=0;i<sum-1;i++) {
                System.out.printf("%d",a[0]);
                operate2(a,c,n);
            }
        }
        private static int[] operate2(int[] a, int[] c, int n) {
            int temp=a[0];
            for(int i=0;i<n-1;i++) {
                a[i]=a[i+1];
            }
            a[n-1]=0;
            if(temp==1) {
                for(int j=0;j<n;j++) {
                    a[j]=(a[j]+c[n-j-1])%2;
                }
            }
            return a;
        }
        private static int[] operate1(int[] a, int[] c, int n) {
            int temp=0;
            for (int i = 0; i < n; i++) {
                if (a[i] * c[i] == 1) {
                    temp += 1;
                }
            }
            a[n - 1] %= 2;
            for (int j = 0; j < n - 1; j++) {
                a[j] = a[j + 1];
            }
            a[n-1]=temp;
            return a;
        }
    }
    
    

    截图


  • 相关阅读:
    Maven安装与配置
    win10更新后程序路径盘符变成*星号解决方法
    谈谈 CSS 关键字 initial、inherit 和 unset
    用 async/await 来处理异步
    Vuex
    HTML5新特性之文件和二进制数据的操作 Blob对象
    vue中class和内联style绑定
    Petya and Staircases CF212div.2B
    CF#212 Two Semiknights Meet
    HDU1423最长上升公共子序列
  • 原文地址:https://www.cnblogs.com/xpl20165321/p/8951931.html
Copyright © 2011-2022 走看看