1、替代算法:
已知替代变换函数f(a)=ak mod 26,且9k mod 26=15,试计算k
import java.util.Arrays; import javax.swing.*; public class HelloWorld { public static char[] letter={'a','b','c','d','e','f','g', 'h','i','j','k','l','m','n', 'o','p','q','r','s','t','u', 'v','w','x','y','z'}; public static char[] Encryp_letter={'a','b','c','d','e','f','g', 'h','i','j','k','l','m','n', 'o','p','q','r','s','t','u', 'v','w','x','y','z'}; //改变序列 public void changeletter(int k){ for(int i=0;i<26;i++){ int b=(i*k)%26; Encryp_letter[i]=letter[b]; } } //查找在序列中的位置 public int selectletter(char[] charArray,char lettervalue){ int index=0; char a=charArray[index]; while(a!=lettervalue){ index++; a=charArray[index]; }