二级好题积累:选择题
二级好题集(持续更新)25.3.2关于最大元素的读取 请记住,不要直接硬生生地把这些数字带进去算,要读懂数字代表的什么 比如这道题,**就需要你去把这个函数在干什么读懂:**这个函数是一个关于对数组最大值的选择的函数。 技巧:注意观察: 变量增加的先后关系。比如: 该函数p值首先增加,增加后,若是索引k的值没有比索引p的值更大,那么索引k讲变为索引p,注意这里的变化关系! 即变量变化的先后顺序,先进行比较,后值发生改变。 另外,*为什么这里么可以让p直接赋值给初始化后的指针P呢,不应该是把p的地址给p吗,比如:k = &p 解答如下: &k 是取 main 函数中变量 k 的地址,传递给 fun 函数中的 k 。这就使得 fun 函数中的指针 k 指向了 main 函数中的变量 k ,也就是说,fun 函数中的 *k 和 main 函数中的 k 代表同一块内存空间,对 *k 的操作等同于对 main 函数中...
c语言操作题
大小写的转化利用 ASCII 码值的差值进行转换 原理:在 ASCII 码表中,大写字母和小写字母的编码是有规律的。小写字母比对应的大写字母的 ASCII 码值大 32 。例如,‘A’ 的 ASCII 码值是 65 ,‘a’ 的 ASCII 码值是 97 。所以可以通过对字符的 ASCII 码值进行加减操作来实现大小写转换。 代码示例: 1234567891011121314151617#include <stdio.h>int main() { char ch = 'A'; // 大写转小写 if (ch >= 'A' && ch <= 'Z') { ch = ch + 32; } printf("转换后的字符: %c\n", ch); char ch2 = 'b'; // 小写转大写 if (ch2 >= 'a'...
c语言选择题
备考c语言选择题(持续更新)25.3.2一些提醒一定要看清楚代码块的包含关系:12while(*p++!='\0');//这里while循环已经结束了!!!!!!!!! return(p-s); 3.2合法标识符 记住:下划线可以开头,数字不可以void这种关键字也不行。 赋值 记住:一定要有分号,赋值末尾 该语句i++为合法赋值语句:相当于i = i + 1 赋值运算符从右到左,赋值号左边:**代表某个存储单元的变量名,**右边:C语言中合法的表达式。 比如: 强制类型转换: 在 C 语言中,强制类型转换是通过类型转换运算来实现的,其一般形式为:(类型说明符)(表达式) ,功能是把表达式的运算结果强制转换成类型说明符所表示的类型。 示例:(float)a可把变量a转换为浮点型;(int)(x + y)会把x + y的结果转换为整型。 注意事项 类型说明符和表达式都必须加括号(单个变量可以不加括号) 。例如(int)(x + y)若写成(int)x +...
re库
r前缀原始字符串和普通字符串普通字符串 简单介绍,普通字符串就是使用单引号和双引号括起来的字符,如:"hello world",若是需要包含一些特殊的字符,那就需要转义符: 比如: 12s="hello\nworld"print(s) 这里将会输出: hello world 12345678910111213 * example:\t 表示制表符 \n表示换行 \r表示回车 \' 表示单引号 \"表示双引号 \\表示一条反斜杠 ### 原始字符串* 简单介绍:原始字符串里面的内容不需要被转义,表示形式为在普通字符串前面加一个r即可。* 比如:* ```python s=r"hello\nworld" print(s) 这里将会输出: hello\nworld 12345678910111213141516171819202122* 注意采用原始字符的形式 \n是两个字符\和n,而不是表示换行的意思了# `re.match`函数*...
决策树分类算法学习
决策树分类算法学习XGBoost算法及其应用对于模型的保存 个人犯的错: # 保存模型时应使用XGBoost原生方法 self.xgb_model.save_model("./classifier/model/xgboost_model/xgboost_model.ubj") #直接使用路径对模型进行加载 class ContextAwareClassifier: def __init__(self, xgb_model, bert_model, tokenizer_model, db_path, db_manager: ControlChatHistoryData, history_size): """传入参数:两种模型,分词器,数据库路径,历史记录长度""" # 初始化数据库连接池 self.connection_pool = SQLiteConnectionPool(db_path) # 初始化并列的类 ...
langchain历史记录管理
langchain历史记录管理输入的消息类型: 关于Message的基本介绍可用看这:langchain基本Messages 这里说说基本的用法(重在区别BaseMessage,HumanMessage,AIMessage) 如以下代码: # 先写 InMemoryMessageHistory,对获取的消息进行处理并获取历史记录列表! class InMemoryMessageHistory(BaseChatMessageHistory, BaseModel): messages: List[BaseMessage] = Field(default_factory=list) # 添加并处理对话记录 def add_message(self, message: BaseMessage) -> None: self.messages.append(message) def clear(self) -> None: ...
朴素贝叶斯分类算法
朴素贝叶斯分类理解步奏一:准备数据集 收集数据:收集与分类任务相关的数据集,比如网安数据,日常生活对话数据 数据标注:以我的aichat bot为例,为网安的数据标注为”1”,日常生活数据标注为”0” 划分数据(可选):将数据集划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。通常,可按照 70% - 30% 或 80% - 20% 的比例进行划分。 步奏二:获取离散矩阵 即使用如:self.vectorizer = CountVectorizer():创建一个 CountVectorizer 对象,用于将文本数据转换为数值特征矩阵。 关于这个数字序列矩阵:X = self.vectorizer.fit_transform(texts):fit_transform 是 CountVectorizer...
numpy库学习(持续更新)
numpy库学习(持续更新array多维数组概念定义多维数组是一种包含多个维度的数据集合,每个维度可以看作是一个方向,类似于数学中的坐标轴。一维数组可以想象成一条直线上的点的集合,二维数组类似一个平面上的网格,三维数组则像是一个立体空间中的立方体网格,以此类推,可以有更高维度的数组。 特点 同质性:多维数组中的所有元素必须是相同的数据类型,例如 int、float 等。这使得 NumPy 数组在内存中存储更高效,也方便进行统一的数值计算。 固定大小:数组创建后,其形状(即各维度的大小)通常是固定的,不像 Python 列表可以动态改变大小。 创建方式使用 np.array() 函数12345678910111213import numpy as np# 创建一维数组one_d_array = np.array([1, 2, 3, 4, 5])print("一维数组:", one_d_array)# 创建二维数组two_d_array = np.array([[1, 2, 3], [4, 5, 6]])print("二维数组:\n",...