1.原题
使用频率分析法,尝试分析如下一段密文,并给出完整的分析过程。
注意:过程不全者不得分。
WB WI KJB MK RMIT BMIQ BJ RASHMWK RMVP YJERYRKB MKD WBI IWOKWXWVMKVR MKD IJYR YNIB URYMWK NKRASHMWKRD BJ OWER M VJYSHRBR RASHMKMBWJK JKR CJNHD PMER BJ LR FNMHWXWRD MKD WKISWURD BJ INVP MK RABRKB BPMB PR VJNHD URMVP BPR IBMBR JX RKHWOPBRKRD YWKD VMSMLHR JX URVJOKWGWKO IJNKDHRII IJNKD MKD IPMSRHRII IPMSR W DJ KJB DRRY YTIRHX BPR XWKMH MNBPJUWBT LNB YT RASRUWRKVR CWBP QMBM PMI HRXB KJ DJNLB BPMB BPR XJHHJCWKO WI BPR SUJSRU MSSHWVMBWJK MKD WKBRUSURBMBWJK W JXXRU YT BPRJUWRI WK BPR PJSR BPMB BPR RIIRKVR JX JQWKMCMK QMUMBR CWHH URYMWK WKBMVB
练习1h半写了一串python代码
import numpy as np
import pandas as pd
arr1=input()
arr1=list(arr1)
arr1=np.array(arr1)
arr2=np.array(['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'])
arr3=np.zeros(26)
print(len(arr2))
print(type(arr1))
num=len(arr1)
for i in range(num):
for j in range(len(arr2)):
if arr1[i]==arr2[j]:
arr3[j]=arr3[j]+1
print(arr3)
arr3 = pd.Series(arr3,index =arr2)
#print(arr3)
arr3=arr3.sort_values(ascending=False)
print(arr3)
arr4=['E','T','A','O','I','N','S','H','R','D','L','C','U','M','W','F','G','Y','P','B','V','K','J','X','Q','Z']
arr5=arr3.index.tolist()
print(arr5)
#print(arr1)
for i in range(num):
for j in range(len(arr5)):
if arr1[i]==arr5[j]:
arr1[i]=arr4[j]
break
arr1="".join(arr1)
print(arr1)
运行的结果
IT IS ONT AO EASB TASK TN EPLRAIO EAUH MNJEMEOT AOD ITS SIGOIFIUAOUE AOD SNME MWST CEMAIO WOEPLRAIOED TN GIJE A UNMLRETE EPLRAOATINO NOE YNWRD HAJE TN VE QWARIFIED AOD IOSLICED TN SWUH AO EPTEOT THAT HE UNWRD CEAUH THE STATE NF EORIGHTEOED MIOD UALAVRE NF CEUNGOIXIOG SNWODRESS SNWOD AOD SHALERESS SHALE I DN ONT DEEM MBSERF THE FIOAR AWTHNCITB VWT MB EPLECIEOUE YITH KATA HAS REFT ON DNWVT THAT THE FNRRNYIOG IS THE LCNLEC ALLRIUATINO AOD IOTECLCETATINO I NFFEC MB THENCIES IO THE HNLE THAT THE ESSEOUE NF NKIOAYAO KACATE YIRR CEMAIO IOTAUT