作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我创建了一个函数,该函数为我提供了密码学模式
plugboard <- function(){
matrix(sample(letters, 26), nrow = 2, ncol = 13)
}
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] "v" "h" "k" "a" "w" "l" "f" "d" "u" "r" "t" "m" "s"
[2,] "p" "q" "b" "g" "x" "y" "i" "n" "z" "o" "j" "e" "c"
ATdecoder <- function(word){
word <- x
pat <- data.frame(plugboard())
tolower(x)
x = gsub(pat$V1, pat$V2, x)
}
最佳答案
您需要设置种子,我无法重现您的房屋示例。很有可能你需要在函数外声明解码器,否则每次都不一样!
两件事,1)您需要将输入字符串拆分为单个字符,以及两个,您只需将它们与矩阵的第一行匹配,调出第二行。
将其放入 data.frame 无济于事,因为第一行不被识别为列名。
做:
plugboard <- function(){
matrix(sample(letters, 26), nrow = 2, ncol = 13)
}
set.seed(111)
pat <- plugboard()
pat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] "n" "s" "e" "h" "m" "d" "y" "i" "a" "v" "r" "u" "p"
[2,] "t" "o" "c" "q" "j" "w" "x" "z" "g" "l" "f" "k" "b"
ATdecoder <- function(word,pat){
x <- unlist(strsplit(tolower(word),""))
if(all(x %in% pat[1,])){
paste(pat[2,match(x,pat[1,])],collapse="")
}else{
paste(pat[1,match(x,pat[2,])],collapse="")
}
}
ATdecoder("pave",pat)
[1] "bglc"
> ATdecoder("bglc",pat)
[1] "pave"
关于r - 如何将一个单词中的所有字母替换为在先前函数中创建的一对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62473180/
我是一名优秀的程序员,十分优秀!