谈几点需要注意的地方吧。
可见在后一种定义下,可能需要把 ij 作为一个整体来求后继……
类似情况的还有克罗地亚语的 dž / lj / nj。
很明显这是一道神经网络题
那么我们用 pytorch 搭建一个网络
import string # 极其高端的pytorch import torch from torch import nn from torch.utils.data import Dataset, DataLoader from tqdm import trange device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using {device} device") class NeuralNetwork(nn.Module): def __init__(self): super(NeuralNetwork, self).__init__() self.linear_stack = nn.Sequential( nn.Linear(26, 64), # 极其高端的激活函数 nn.Hardsigmoid(), nn.Linear(64, 26), nn.Hardsigmoid(), ) self.linear_stack_2 = nn.Sequential( nn.Linear(26, 64), nn.Hardsigmoid(), nn.Linear(64, 64), nn.Hardsigmoid(), ) self.output_layer = nn.Linear(64, 26) def forward(self, x): y = self.linear_stack(x) # 极其高端的残差 x = y + x y = self.linear_stack_2(x) y = self.output_layer(y) return y model = NeuralNetwork().to(device) x = torch.zeros((26, 26), dtype=torch.float32) for i in range(26): x[i][i] = 1 class Data(Dataset): def __init__(self): self.data = list( zip( x, list(range(1, 26)) + [0], ) ) def __len__(self): return 26 def __getitem__(self, idx): return self.data[idx] data = Data() dataloader = DataLoader(data, batch_size=1, shuffle=True) loss_fn = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) for epoch in trange(500): for batch, (X, y) in enumerate(dataloader): X, y = X.to(device), y.to(device) pred = model(X) loss = loss_fn(pred, y) optimizer.zero_grad() loss.backward() optimizer.step() with torch.no_grad(): pred = model(x) print(pred.argmax(1)) alphabet_digit_map = dict(zip(string.ascii_lowercase, x)) alphabet_digit_map_reverse = dict(zip(range(26), string.ascii_lowercase)) def trans_words(word): return "".join( alphabet_digit_map_reverse[model(alphabet_digit_map[w]).argmax().item()] for w in word ) my_word = "helloz" print(trans_words(my_word))
写程序的实质是解决问题的思路,在代码实现前更重要的是——你是否有解决方案及其相关的基本知识。
信息采用二进制存储在计算机中,因此有一套对应的编码规则,e.g. ASCII 码,其中一条规则:字母 A 比字母 Z 要小,并按 A 到 Z 顺序递增,如 “A” < “Z” 。针对该问题,由于涉及到所有字母,则可以建立一套基于 ASCII 码的映射表进行转换。
这个问题的拓展有“恺撒密码”加密,这是编程入门最常见的例子——明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。
有的答主一上来就pip install了一个轮子,但凡要装轮子就有office politics,大家要论证这个轮子是个好轮子,要看有没有什么可以替代的更好的轮子,出了问题又要你背锅,太麻烦了。
又或者直接写了一串没有可读性的代码,这太麻烦了。真的工作的时候写这样一个东西要二三十分钟还要不要做事了。
最容易的办法是:
def caeser
我本来想取一个fancy的名字,但是到这里自动联想(灰色部分)已经帮你完成了所有步骤了,按下tab自动补全,并且击败了这个回答中至少95%的用户:解题速度大概1-2s一题。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有