1. 基础知识(一)

本题目要求使用一份 Markdown 文件记录本题所有的作答。本题主要是帮助各位同学了解并使用计算机常用的软件和基本知识。

1.[blame Furina's dog]
Markdown 是一种轻量级标记语言,我们可以很方便地使用Markdown语法快速形成漂亮的笔记,在我们计算机相关知识的学习中,我们也常常使用Markdown来记笔记。市面上常见的Markdown编辑器有 AtomMarktextTyporaVisual Studio Code 等。请选择一种你喜欢的编辑器,仿照以下Markdown样例PDF文件做出一份完全一致的笔记,记录在本题的Markdown文档的第一问的对应位置中。
指路www.markdown.cn
我不是这题的Markdown样例文件

2.[blame XMKDGDZ]
Git 在我们互联网生产中和项目合作中起到举足轻重的作用,目前主流上都采用了Git进行公司内部的项目管理。请查阅相关资料并回答以下两个小问题,并记录在本题Markdown文档的第二问的位置中。

人生不能重来,但Git可以。——By 出这一题的 学姐

  1. Git初识

    Git是啥?它有什么用?为什么要用Git?请用自己的语言解释Git的含义和Git的优缺点。

  2. Git 实战

    现在你已经明白了Git是什么,也意识到了Git的好,那么就让我们来实践一下吧!

    请用最基础的文本文档写一个txt格式的简单自我介绍,并命名为Hello.txt,请将其推送到远程仓库。完成后请提交你的仓库地址。(记得公开哦)

    你使用可以国际远程代码托管平台GitHub,或者国内远程代码托管平台Gitee,或者其他类似的远程代码托管平台。

    注意
    Git必须要用命令行进行操作,例如git add,git commit等,在GitHub、Gitee的可视化界面点upload按钮上传文件是违规操作!!!

    参考资料
    git官方教程:https://git-scm.com/book
    一个不错的实践课程:https://www.educoder.net/paths/cgknh4of

3.[blame Furina's dog]
TeX 是高德纳开发的一款排版系统,\LaTeX 对其进行了更易用的封装。在我们写学科论文或者课程报告时,总是不可避免地在文档中插入一些公式,而公式比较主流的记录方法是采用 \LaTeX 语言进行书写。请学习并复刻以下LaTeX公式,记录在本题的Markdown文档的对应位置中。感兴趣的同学也可以了解一下公式的作用

  1. {\rm ELU}(x)=\begin{cases}\alpha(e^x-1)&x<0\\x&0\leq x<1\\\end{cases}{\rm ELU}激活函数)
  2. P(X_t,X_{t-1},...,X_1)=\prod\limits_{i=1}^tP(X_{i}|X_{i-1})=P(X_t|X_{t-1})...P(X_3|X_2)P(X_2|X_1)P(X_1)(马尔科夫链)
  3. v_{\pi}(s)=\max\sum\pi(a)\big[\sum p(r|a)r+\gamma \sum p(s^{'}|a)v_{\pi}\{s^{'}\}\big](最优贝尔曼公式)

2. 基础知识(二)

[blame Furina's dog]

本题目要求使用一份 Markdown 文件记录本题所有的作答。本题主要是帮助各位同学了解计算机相关知识。

  1. 请简述Web前端、Web后端和机器学习分别是什么?解决了什么需求和问题?各个领域常用的工具和框架有哪些?

  2. Linux和Shell:Linux操作系统是区别于Windows和MacOS的操作系统,在计算机系统领域有着极为广阔的应用。而Shell则是用户和Linux交互的直接工具。请了解Linux系统的基本概念发展历程以及应用场景,并学习Shell脚本的一些常见的语法规范。最后使用Shell脚本编写程序,实现以空格为间隔输入两个整数,在屏幕上打印出两数之和,在Markdown文档中对应位置贴上本题对Linux系统的思考,以及Shell脚本代码和输入输出截图。样例如下:

    ​[Input]: ./example.sh 7 3
    ​[Output]: 10

3. 交汇

[blame Furina's dog]

折木奉太郎是一个“灰色”的节能主义者,总是避免可能遇到的一切可能的麻烦事。但是由于一些被迫的契机下,他加入即将废弃的“古典文学社”,并与女主千反田爱瑠相遇,从此命运的齿轮开始转动,单调的高中生活也开始变成了“玫瑰色”。
假设折木奉太郎和千反田爱瑠的命运函数为f(x)=x+\ln{x},他们将在f(x)=0时相遇,请找到他们相遇的契机x,并保留六位有效数字。(使用任意你能想到的算法,要求提供代码和必要的注释)
我们不妨再假设你压根不知道他们的命运函数是什么(也就是说整个函数是一个黑盒,可以输入一个数并得到函数的输出,但不能得知函数的结构),只知道命运函数严格单调递增、有且只有一个零点,你还有办法找出他们相遇的契机吗?(参考 Robbins-Monro 算法,要求提供代码和必要的注释)
千反田爱瑠

查阅 Robbins-Monro 算法,思考其与梯度下降算法的关系,并了解梯度下降算法在深度学习领域的应用,在Markdown文档中给出你的思考和两份算法实现的代码和运行截图。

4. 艾小登的数据结构大冒险

[blame XMKDGDZ]

倒转的世界,穿墙而出的植物,诡异的阴影,本不该出现在空中的帆船......一觉醒来艾小登发现自己出现在一个奇特的异世界。“欢迎来到Ubisoft!”艾小登被面前突然出现的无脸男吓了一跳。“不好意思,吓到你了,我们这个世界就是这样,有很多bug。”无脸男不好意思地说。“你现在在干什么?”艾小登问。无脸男指了指手中的纸笔:“我在登记明天的开会名单。”“都什么年代了还在用传统纸笔?”艾小登的程序员血脉觉醒了,他环视四周只发现了几颗土豆,好吧,就用土豆服务器来帮助这个世界的人们实现信息化吧。

  1. 请设计一个程序,该程序应当可以让用户输入参会人员的信息,并将其存储在一个数组中。请先学习结构体的相关知识,并考虑通过循环初始化。

    参会人员信息示例:

    姓名 性别(是否为男性) 出生年份
    Altair 1165
    Ezio 1459
    ShaoYun 1500
    Connor 1756
    Edward 1693
    Evie 1874
  2. 艾小登已经成功实现将信息存入数组,但是现在的信息全是乱序的,请尝试继续修改程序,使存储的人员信息可以按照姓名A-Z-a-z(先比较首字母,若相同比较第二位以此类推)的顺序排列。

  3. 就在艾小登试图插入第10000个参会人员信息的时候,土豆服务器爆炸了,变成了炸薯条。看来数组也不能解决所有问题。为了便于频繁的插入和删除参会人员信息,艾小登想到了链表。请设计一个程序,该程序通过链表存储参会人员信息。

  4. 这次,在艾小登试图插入第10000个参会人员信息的时候,他手滑关掉了程序。再次打开程序他又要重新开始。难道他每次打开程序都要一个一个手动输入吗?为什么不能直接操作一个保存有参会人员信息的文件呢?请下载下方文件,使用文件相关操作,从下面的信息文件中直接读入信息,并将调整顺序过后的文件保存在同名文件中。注意:文件中信息每列相隔一个制表符。
    我不是这题的信息文件

5. Hashing

[blame LAuemtihneer]

阅读如下博文,并回答问题:https://samwho.dev/hashing/

  1. 请使用 C 语言实现文中提到的 stringSum 哈希函数
  2. 请尝试编写一个测试程序,该程序能用于寻找哈希函数的哈希冲突,并将该测试程序用于 stringSum 哈希函数,并给出 10 个长度为 10 的字符串,这 10 个字符串在应用 stringSum 哈希函数后返回相同的值。(编程语言不限)

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注