测试网站dddd

斐波拉契数列

1,1,2,3,5,8
每一个数是它前两个数的和,第n个数是多少

动态规划问题

冒泡排序、快排、选择排序、

后缀表达式

在这里插入图片描述
思路:后缀表达式是为了方标计算机运算,也就是隐式的含有小括号的一种表达式。有了小括号和减号,我们就可以把加号变成减号,减号变成加号。
对于本题,n个加号,m个减号。

如果m=0,就对所有的数相加即可得到最终结果。

如果m>0,就把数分成三类:

数据全为正:就把最小的那个数减掉,其他剩余的数加上就是最后结果。

数据全为负:就把最大的那个数加上,其他剩下的数减掉(也就是加上绝对值),就是最后结果。

数据有负有正:最后结果就是所有数的绝对值相加。

n,m=map(int,input().split())
nums=list(map(int,input().split()))
nums.sort()
            
if m==0:
      result=sum(nums)
else:
      if nums[0]>0:
            result=sum(nums[1:len(nums)])-nums[0]
      elif nums[-1]<0:
            result=sum(nums[0:len(nums)-1])*(-1)+nums[-1]
      else:
            absnums=[abs(x) for x in nums]
            result=sum(absnums)
 
print(result) 

红黑树

是自平衡二叉树,是一种特化的平衡二叉树。左右子树高差可能大于1

哈希索引

平衡二叉树

B+树

B+树的特征:
1、有K个孩子的节点就有K个关键字。也就是孩子数量=关键字数。
2、非叶子节点的关键字也会同时存在在子节点中,并且是在子节点中所有关键字的最大或最小。
3、非叶子节点仅用于索引,不保存数据记录,跟记录有关的信息都放在叶子节点中。
4、所有关键字都在叶子节点出现,叶子节点构成一个有序链表,而且叶子节点本身按照关键字的大小从小到大顺序链接。
在这里插入图片描述

哈希索引

在这里插入图片描述
键值Key通过Hash映射找到桶bucket。桶指的是一个能存储一条或多条记录的存储单位。一个桶的结构包含了一个内存指针数组,桶中的每行数据都会指向下一行,形成链表结构,当遇到Hash冲突时,会在桶中进行键值的查找。
2.Hash冲突:
如果桶的空间小于输入的空间,不同的输入可能会映射到同一个桶中,这时就会产生Hash冲突,如果Hash冲突的量很大,就会影响读取性能。

由于Hash索引结构和B+ 树不同,因此在索引使用上也会有差别:

(1)Hash索引不能进行范围查询,而B+树可以。
这是因为Hash索引指向的数据是无序的,而B+ 树的叶子节点是个有序的链表。

(2)Hash索引不支持联合索引的最左侧原则(即联合索引的部分索引无法使用),而B+树可以。
对于联合索引来说,Hash索引在计算Hash值的时候是将索引键合并后再一起计算Hash值,所以不会针对每个索引单独计算Hash值。因此如果用到联合索引的一个或多个索引时,联合索引无法被利用。

(3)Hash索引不支持Order BY排序,而B+树支持。
因为Hash索引指向的数据是无序的,因此无法起到排序优化的作用,而B+树索引数据是有序的,可以起到对该字段Order By 排序优化的作用。

(4)Hash索引无法进行模糊查询。而B+ 树使用 LIKE 进行模糊查询的时候,LIKE后面前模糊查询(比如%开头)的话可以起到优化的作用。

(5)Hash索引在等值查询上比B+树效率更高。
不过也存在一种情况,就是索引列的重复值如果很多,效率就会降低。这是因为遇到Hash冲突时,需要遍历桶中的行指针来进行比较,找到查询的关键字非常耗时。所以Hash索引通常不会用到重复值多的列上,比如列为性别,年龄等。

where和having区别

在这里插入图片描述

测试方法:场景法

场景法一般包含四种主要的类型:正常的用例场景、备选的用例场景、异常的用例场景、假定推测的场景。通过运用场景法,可以清晰地描述出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
场景法的应用步骤包括:
‌分析需求‌,确定基本流和备选流。
‌根据基本流和备选流生成不同的场景‌。
‌对每一个场景生成相应的测试用例‌。
‌对生成的所有测试用例重新复审,去掉多余的测试用例‌。
‌测试用例确定后,为每一个测试用例确定测试数据值‌。

dd-trainer 是一个基于 PyTorch 的深度学习模型训练框架,可以用于训练各种自然语言处理模型,比如文本分类、情感分析、机器翻译、问答系统等等。下面是一个简单的 dd-trainer 训练教程: 1. 安装 dd-trainer 可以通过 pip 安装 dd-trainer: ```bash pip install dd-trainer ``` 2. 准备数据 dd-trainer 支持多种数据格式,比如 CSV、JSON、XML、TXT 等等。你需要将你的数据转换为 dd-trainer 支持的格式,并将其分成训练集、验证集和测试集。下面是一个 CSV 格式的数据示例: ```csv text,label "这是一篇正面的文章。",1 "这是一篇负面的文章。",0 ``` 其中,`text` 列是文本数据,`label` 列是对应的分类标签。 3. 定义模型 你需要定义一个模型类,继承自 `dd_trainer.models.base.ModelBase` 类,并实现 `forward` 方法。下面是一个简单的文本分类模型示例: ```python import torch.nn as nn class TextClassificationModel(ModelBase): def __init__(self, vocab_size, num_classes, embedding_dim, hidden_dim, num_layers): super().__init__() self.embedding = nn.Embedding(vocab_size, embedding_dim) self.rnn = nn.LSTM(embedding_dim, hidden_dim, num_layers, bidirectional=True) self.fc = nn.Linear(hidden_dim * 2, num_classes) def forward(self, inputs): x = self.embedding(inputs) x, _ = self.rnn(x) x = x.mean(dim=1) x = self.fc(x) return x ``` 这个模型使用了一个双向 LSTM 来提取文本特征,并通过一个全连接层将特征映射为分类标签。 4. 配置训练参数 你需要定义一个字典类型的训练参数,包括模型类、数据路径、训练批次大小、学习率、损失函数、优化器等等。下面是一个简单的训练参数示例: ```python config = { 'model_class': TextClassificationModel, 'data_path': 'data.csv', 'batch_size': 32, 'lr': 0.001, 'loss_fn': nn.CrossEntropyLoss(), 'optimizer': torch.optim.Adam, 'optimizer_kwargs': {'weight_decay': 0.01}, 'num_epochs': 10, 'device': 'cuda', 'log_step': 10, 'save_step': 100, 'output_dir': 'output', } ``` 5. 训练模型 你可以通过以下代码开始训练模型: ```python from dd_trainer.trainers import TextClassificationTrainer trainer = TextClassificationTrainer(config) trainer.train() ``` 这个训练器会自动加载数据、模型,并在指定的设备上训练模型。训练过程中,你可以在控制台看到训练的进度和损失值。 6. 测试模型 你可以通过以下代码测试模型: ```python from dd_trainer.utils import load_model, load_data model = load_model('output/best_model.pt') data = load_data('data.csv', 'test') inputs, labels = data['inputs'], data['labels'] with torch.no_grad(): outputs = model(inputs) preds = outputs.argmax(dim=-1) acc = (preds == labels).float().mean().item() print(f'Test accuracy: {acc}') ``` 这个代码会加载训练好的模型和测试数据,并在测试数据上计算准确率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值