SCUT IBM 2023 二轮面试题之git
Git、GitHub Pages、CMake 入门任务概述这些小任务旨在帮助你入门Git、GitHub Pages和CMake,这些技术将成为你未来学习和工作的重要一环。任务包含多个步骤,每个步骤都有不同的难度。完成任务后,你将学会如何使用Git来管理项目、使用GitHub Pages托管静态网站和使用CMake构建项目。
Tips:尽量做,做到哪提交到哪
任务一:Git分支和协作git是什么?为什么要学git?
Git 是一个分布式版本控制系统,它可以追踪和管理项目的代码变更。每个开发者都可以克隆整个代码库到本地,进行修改,然后将更改推送回主仓库,以便其他人查看和合并。
版本控制: Git 允许开发者跟踪项目的每个版本和修改。这意味着你可以轻松地回溯到以前的版本,查看代码的历史,并了解代码是如何演化的。
协作: Git 是多人协作的关键工具。多个开发者可以同时在同一个项目上工作,而不会相互干扰。他们可以在不同的分支上进行独立的开发,然后将更改合并到主分支。
……不啰嗦了,不知道的同学可以自己再去深入了解
步骤概述:
创建和初始化Git仓库
创建一个github账号(如果不会魔法 ...
Hash Table
本博客为哈佛大学的CS50 Introduction to Computer Science中数据结构哈希表这一节的笔记,我按照自己的理解排布了结构,进行了翻译并加上了自己的理解作为补充。致谢为这门课付出并公开的所有人
What is Hash Table?哈希表是两种我们非常熟悉的东西的结合体。
第一个是哈希函数,它能把输入的内容经过处理后,返回一个特定的称为哈希码的非负整数值。
第二个是一个能够存储我们希望放入数据结构中的数据类型的数组。(例如普通的数组或者是一个Vector,总之是一个能够存放“值”的容器。哈希表中的数组可以是普通的数组、向量、链表、链表数组等不同数据结构,具体取决于哈希表的实现方式。)
在哈希表中,数组的每个位置都可以存储一个键值对(key-value pair),其中“键”是用来查找值的标识符,而“值”则是我们实际想要存储的数据。通过哈希函数,我们可以将键映射到数组的索引位置上,然后将值存储在对应的位置,以便能够高效地检索和操作数据。所以,这句话的意思是在哈希表中,我们使用数组来存储键值对中的值部分。*
A hash table amounts to ...
Digital Logic Review Notes
数字逻辑复习笔记
Chapter 1 二进制控制复杂性的艺术“3Y” 原则
Hierarchy (层次化)把系统划分为若干模块,然后进一步划分每个模块直到这些模块可以很容易理解
Modularity(模块化)所有模块有定义好的功能和接口,以便于他们之间可以很容易地相互连接而不会产生意想不到的副作用
Regularity(规整化)在模块之间寻求一致,通用模块可以重复使用多次,以便减少设计不同模块的数量
数制十进制、二进制、八进制和十六进制的转换二进制加减法数字抽象噪声容限NM_L = V_IL - V_OLNM_H = V_OH - V_IH
静态约束 static discipline牺牲使用任意模拟电路元件的自由来换取数字电路的简单可靠
同一个逻辑系列(logic family)的元器件遵循相同的静态约束,逻辑门之间保持兼容的逻辑电平Chapter 2 组合逻辑设计组合电路的概念
每一个电路元件本身就是组合电路
每一个电路结点或者是一个电路的输入,或者是连接到外部电路的一个输出端
电路不包含回路;经过电路的每条路径最多只能经过每个电路结点一次布尔表达式与或式(SOP,sum of p ...
CMake入门
Cmake应用:CMakeLists.txt 完全指南
find_library和find_package(你提到的require mysql可能是指find_package(MySQL REQUIRED))在CMake中有不同的用途和行为:
find_library:
用于查找特定的库文件(例如libmysqlclient.so)。
只返回库文件的路径,不会自动处理库的依赖项或包含路径。
需要手动指定包含路径和其他依赖项。
find_package:
用于查找并配置一个完整的软件包(例如MySQL)。
自动处理库的依赖项、包含路径和其他配置。
通常需要一个对应的配置文件(例如FindMySQL.cmake或MySQLConfig.cmake)。
在你的情况下,使用find_package会更方便,因为它会自动处理MySQL库的所有配置。下面是如何使用find_package来替代find_library:
1234567cmake_minimum_required(VERSION 3.5.0)project(database-program VERSION 0.1.0 ...
2024MCMICM选题小记
选题A Resource Availability and Sex Ratios这项任务是检查一个物种根据资源可用性改变其性别比例的能力的利弊。您的团队应该开发和检查一个模型,以提供对生态系统中产生的交互的见解。
七鳃鳗在幼虫阶段的发育速度决定了它们的雌雄。这些幼虫的生长速度受到食物供应的影响。在食物供应不足的环境中,生长速度会更低,雄性的比例可以达到人口的78%左右。在食物更容易获得的环境中,据观察,雄性的比例约占人口的56%。
要研究的问题包括:
当七鳃鳗的种群可以改变其性别比例时,对更大的生态系统有什么影响?
七鳃鳗种群的优势和劣势是什么?
考虑到七鳃鳗性别比例的变化,对生态系统稳定性的影响是什么?
在七鳃鳗种群中具有可变性别比例的生态系统能否为生态系统中的其他物种(如寄生虫)提供优势?
相关思路和文献
幼虫的生长速率决定性别
幼虫时期以浮游生物为生
雄性少于雌性,竞争加剧,死亡率上升
雄性多于雌性,生育率低
性别比例影响出生率和死亡率,从而间接通过食物链食物网影响到更大的生态系统。
分为原生地和作为入侵物种两种情况,后者的猎物死亡率更高
生命周期平均6年,最长20年
产卵 ...
2023国赛经历总结和复盘
戏剧性的三天先吐槽一下:暴雨开局/80w个数据/Excel民工/word指挥官/盒子空间/透明厕所玻璃/无门浴室/熬大夜之后直接回校跑了个1km,跑完回去接着干活/极限提交操作/结题夜宵喝了两杯,烧烤甚至忘记还钱了!
是全力以赴、团结协作、恣意享受的三天半。
复盘选题第一天晚上六点准时开始看题,一开始大概看了三道题,觉得A、B都有比较浓厚的物理建模的成分,C题看起来很常规,我们也很有把握,觉得如果选了C题不管怎么样肯定能做做完,而且会有很多人选,很难获奖。于是我们大概拉了一遍流程之后(直到这里也没觉得C有什么问题)就去看A题了。A题不仅题目里给出了很多参考文献,在知网上也能找到很多相关的论文,特别是兰州交通大学的学位论文。在读论文的过程中我也发现了一个开源的仿真软件能够导入坐标、模拟出定日镜场的模型。看起来非常酷炫,感觉图像这一块是稳了(因为先前物理背景的题比较担心的是一些物理的专业图形规范作图)。于是我们开始八点左右到快十点,三个人开始研究A题怎么做。可惜最后我们没能研究出各种阴影遮挡的处理方法,解决不了这个问题,A题最基本的物理模型就无法建立起来。按照时间安排,第一天晚上睡觉前必须 ...
VMware + Linux centOS 联网 & final shell 远程连接
VMware workstation 17 player + Linux centOS 实现联网 & final shell 实现远程连接VMware workstation 17 player + Linux centOS 实现联网vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
前置知识桥接模式桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相 ...
WSL安装Linux虚拟机(以Ubuntu为例)
WSL安装Linux虚拟机(以Ubuntu为例)为什么要用WSLWSL作为win10的新特性,比起传统获取Linux操作系统环境的方式更加轻量化,简单便捷,使用的开发者也不少。
WSL原理图剖析
使用WSL安装Ubuntu具体步骤
打开WSL相关设置在应用->可选功能->更多windows功能中,拉到最下面勾选Windows下的Linux子系统选项和虚拟机平台选项,然后重启(截图的时候没有勾选虚拟机平台,后来网上看经验贴和视频弹幕的时候发现有人说要勾选)。
安装Ubuntu重启之后,直接在Windows store搜索Ubuntu下载。打开cmd,这个时候在新建标签页那里点击下拉菜单会发现已经出现了Ubuntu的选项。于是就新建一个Ubuntu标签页打开,看到如下图所示的内容,发现这里和黑马的教程不一样了,出现了看不懂的报错……但是给了一个文档的地址。
错误处理(下载一个更新包)点击查看文档,发现需要安装Linux kernel update更新包,大小只有6mb左右。
安装好Linux kernel update更新包之后重新打开,发现已经可以注册账号并且正常使用命令行了 ...
【数据结构】树与二叉树
树与二叉树前置知识
树和图属于非线性结构(一对多),其他线性结构属于一对一(前驱和后驱唯一)。
树的其他表示方式:嵌套集合,凹入表示,广义表
树的度是节点度的最大值
有序树、无序树
森林:是 m 棵互不相交的树的集合(把根节点删除,树就变成了森林)
二叉树的逻辑结构和存储结构
完全二叉树的高度 h 和节点数 n 的关系 $2^{(h-1)}-1 < n < 2^h-1$ , 变形为 $h = [log_2n](向下取整) +1$ 或者 $h = [log_2 (n+1)] (向上取整)$
总分支数量 = 总结点数
叶节点数$N_0$,单分支节点数$N_1$,双分支节点数$N_2$
则有总结点数 $=N_0+N_1+N_2$
总分支数 $=N_1+2N_2$
$N_0=N_2+1$(叶子结点数量等于双分支节点数量+1)
完全二叉树顺序存储结构:比如某个节点序号为 n,则其左孩子序号为 2n+1,右孩子的序号为 2n+2
$N(总结点数) = e(边数)+1$
$e = N00+N11+N22+……Nnn$(这两条公式都可以通过把所有分支拿到同一边来完成证明)二叉树链式存 ...
【设计模式】简单工厂模式
简单工厂模式一句话概括简单工厂的特点就是,使用 唯一工厂类 来完成 抽象产品类 对象实例化的工作,客户端只负责调用工厂类的函数接口。举个例子,一个计算器项目中有一个名为 operationFactory 的工厂类,这个工厂类包含一个createOperate的成员方法,返回的是一个符合需求的该类型的对象。客户端只需要创建一个新对象并且把在这个对象赋值为调用 createOperator 的返回值。以下是工厂类代码:12345678910111213class Operation{Operation createOperate(string operator){Operaton oper = null;switch(operatpr){case “+”: oper = new OperationAdd(); break;//其他类似运算省略}return oper;}}以下是客户端代码:12345Operator oper;oper = OperationFactory.createOperate(“+”);oper ...