Visual Studio Code Guide
Visual Studio Code
关于编译运行C/C++的配置安装指南
关于安装运行python的指南
前言上大学很多朋友可能会遇到编程课程,会学习到C/C++的一些初步知识,相较于dev c++我更推荐各位有能力者使用Visual Studio Code(以下简称为VSCode)进行编程与开发,由于开源和丰富的插件扩展,更新迭代和新功能加入的速度很快,同时它的颜值一定会让你欲罢不能,它会为你提供更加广阔的学习前景和诸如Leetcode刷题等等的功能。
对于C/C++语言初学者的优势
比Visual Studio的空间占用小很多(虽然大于Dev C++)。
不需要每个源文件都新建一个单独的项目,各文件相互独立(此项由tasks.json和launch.json中的配置决定)。
将所有源代码可以分类整理,一个程序直接新建文件且均可以轻松从文件资源管理器中找到。
C/C++扩展自带的中文报错提示,方便初学者查看错误。
总而言之,计算机方面的学习,要从学会合理运用搜索引擎以及看文档看博客开始,希望你从我这篇博客起步,不断学习。
VSCode的安装需要的工具
Windows 10 ...
Hackergame 2020 Summary
一纸总结Write Up
Hackergame 2020 Write Up 0x00 2048, 超简单的世界模拟器, 自复读的复读机, 233 同学的字符串工具, 狗狗银行
Hackergame 2020 Write Up 0x01 超简陋的 OpenGL 小程序, 永不溢出的计算器, 超精巧的数字论证器, 超自动的开箱模拟器
Hackergame 2020 Write Up 0x02 超安全的代理服务器, 生活在博弈树上, 超精准的宇宙射线模拟器, 中间人(1)
Summary现在是2020.11.08下午18:14,我终于把三部分的write up写完了,但是我写的write up可能和其他选手的不太一样,我不仅仅写了题目的解法,还尽可能多的保留了我的探索过程和思维过程,以及一些的相关资料还有吐槽.
这也是我第一次打比较正统的CTF还是想吐槽Bili猜题大会,但还是忍一忍,对自己而言,也是长见识了.
其实感觉每年Hackergame的题目中总能知道些很不同的东西,而且题目设计也都还比较有趣,我比较想特别提一下的是开箱模拟器和DogeBank的设计,这两道题目给我留下 ...
函数式编程 | #01 | Lambda演算中的自然数
函数式编程Lambda演算在定义了布尔值并且实现了“布尔运算”之后,我们要迈入下一步探索:自然数在Lambda演算中应该如何定义?
自然数的定义我们依然采用Alonzo Church的方案来构造所谓的邱奇数(Church numerals),这个方案也满足皮亚诺公理,可以形成一个皮亚诺算术系统。
介绍这一方案前,我想定义一下函数的复合的表示形式,以便后文使用:$$f^{\circ n}=\underbrace {f\circ f\circ \cdots \circ f} _{n{\text{ times}}}$$
而这一表示方案即利用函数复合的次数来表示对应的自然数,同时$0$以不应用函数来表示,写作定义的形式即:
$$\begin{align*}0 &:= \lambda \ f \ x. x\\1 &:= \lambda \ f \ x. f \ x\\2 &:= \lambda \ f \ x. f \ (f \ x)\\&\dots\\N &:= \lambda \ f \ x. f^{\circ n} \ x\end{align*}$ ...
函数式编程 | #00 | 初识Lambda演算
函数式编程缘起在学习面向对象编程的过程中,我曾第一次接触了“把函数作为一个参数传入另一个函数”这种最初看来很不可理喻的操作。后来,在C语言中遇到了“函数指针”,在C#中也遇到了“委托”和lambda表达式等内容。而促使我接触函数式编程的,一个是微软俱乐部的一道“一元函数”题目和它交给我的二面任务:初步学习F#。
对于那道题目,将会是此栏目后文中讨论的内容,不过先抛开他不管,先来聊聊什么是“Lambda演算”。
Lambda演算函数式编程——要源于1930年代的数学家Alonzo Church提出的Lambda演算。引用一段知乎同学的话:
在介绍$\lambda$演算之前,我们需要放空一下我们的大脑,忘掉C语言,忘掉冯·诺伊曼机,忘掉图灵机,甚至要忘掉0和1,加和减。我们来到一个只有符号的世界。在这个新的世界里,只需要几条简单的定义和规则,便可以构造出与图灵机完全等价的计算模型,即它是图灵完全(Turing Complete)的。和图灵机一样,这个计算模型可以解决任何一个可以机械计算的问题;与图灵机倾向于硬件实现不同,它更倾向于逻辑的推理。它就是$\lambda$演算(Lambda演算 ...
点云 | #01 | 大场景点云语义分割的优化
论文学习RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
三维点云大场景下的问题
点云的几何结构复杂且经常包含了大量的物品类别和巨量的数据规模。
GPU运算的限制、GPU内存的限制导致的落地难度。
小区块分割的方法无法很好的体现广域的特征,也有将一个物体“切断”导致的识别错误问题。
需求
找出更高效的降采样方法,减少内存占用和运算损耗
找出一个高效的方法进行局部特征提取和聚合,以获取和保留几何特征
常用的降采样方案启发式采样算法
Farthest Point Sampling (FPS): 每次选取最远的点作为下一个采样点。 优势:覆盖性好,有很好的采样效果。 劣势:时间复杂度$\Theta (n^2)$,可扩展性差。
Inverse Density Importance Sampling (IDIS): 计算点的密度,在高密度区域多采样,低密度区域少采样,且尽量保留低密度的点。 优势:密度控制,较好地保留特征。 劣势:时间复杂度$\Theta (n)$,对噪声数据敏感。
Random S ...
点云 | #00 | 机器学习与语义分割
点云
A point cloud is a set of data points in space. The points represent a 3D shape or object. Each point has its set of X, Y and Z coordinates.——摘自Wikipedia: Point cloud
点云(PointCloud)即一种空间中点的集合,它一般指通过扫描设备得到的物体表面的点集,这些点有自己的位置信息和一些附属信息。
其中,位置信息的直接呈现一般是深度信息,通过激光雷达等设备获得,它通过一定的转换后,可以变为空间中的xyz坐标信息。同时,附属信息包含了点的色彩信息(RGB)、激光反射强度(Intensity)等等。
由于点云具有一定的空间特性,它相较于平面二维化的视频数据、图片数据有着天然的对空间描述的优势,从而基于点云进行的三维重建、物体识别和目标搜索等等处理都具有着广泛的应用空间。
点云语义及实例分割概述由于一些原因,我首先接触的方向是点云的语义分割。总体而言,通图像处理领域的语义分割一样,这个方向的工作是通过点云的原始数据,使用 ...
当我无意中读了一些.NET源码……
关于我读.NET源码那些事日常更新维护电脑常用软件的时候看到 dnSpy 似乎很久没有更新了, 于是去 GitHub 上看了看, 发现作者已经把它 archive 了, 于是带着些许震惊下载了最新的版本。之后随便找个 .NET 应用反编译了一下, 看着 System 命名空间, 突然生出了好奇心:“那些类是怎么实现的呢?”
今天遇到了个小问题, 询问学长过程中才想起来 .NET 是在 GitHub 上开源的东西:.NET Runtime, 大可以直接翻找其源代码, 学长又提供了一个看 .NET 源码的网站:.NET Source Browser
此篇文章并未完全结束, 以后更新。
StackLink to Stack.cs
点着点着, 翻到了 Stack 类的实现, 也算是比较好奇这个入门级的数据结构是怎么实现的, 于是找了几个好奇的方法看了起来。
123456789101112// Pops an item from the top of the stack.// If the stack is empty, Pop throws an InvalidOperationExcept ...
2020年终报告
2020年终报告大家都在写自己的年终总结,其实我觉得在隔壁你好,十九岁中已经写的差不多了,所以也的确没什么可以说的,今天看了个混剪: BV1si4y1w7UN
顿时觉得有些不知道说些什么才好。
20:40
刚刚泡好一杯奶茶,昨天的这时候其实蛮不舒服的,应该是有点感冒,浑身发热头还挺疼的,所以一觉从七点半左右睡到了十点,晚上吃了药,洗了一趟热水澡,然后倒头就睡到了今天早上九点。起来倒好,瞬间感觉轻松多了,至少自己的2020不会在难受中结束。
看着B站的跨年晚会,今天降温了,宿舍有点冷,不过宿舍只我一人。
不过,似乎也就是那样,什么都没有变。
不过,毕竟是2020的年终报告,还是认真点写一下的好。
Summary2020对我来说,是飞跃的一年,但并不如意,并不值得怀念。
2020的故事,给别人讲了很多遍,终于还是打把它写下来,在2020的最后一天,让它以文字的形式讲最后一遍。
而希望以后,不会再用它博取任何人的同情抑或是仰视。
何说飞跃这是一个老掉牙的故事了,我希望这是我最后一次讲起这个故事,是时候摆脱它的桎梏,面对新的自己。
不过我还是想从初一开始讲起。
思索后,决定此处不多赘述 ...
关于我和VSCode的一切
观前提示:不引战!Pycharm、Atom、Sublime都很好!这只是我个人和VSC的故事!
前文本编辑器时代?2015年4月30日,微软发布了一个新的项目:Microsoft Visual Studio Code。
源自Monaco,使用electron,全平台。
那时候的发布会新闻下的评论:“然并卵”“貌似很强大,不过用习惯了brackets了。。。。。。”“感觉微软是为了讨好开发者,基于一个开源项目改吧改吧,然后在发布会上宣传下,是不是真心要做好一个产品,还得观望后续。”
同年11月13日,它于Github开源。
…………
2017年。
我打开浏览器,输入“文本编辑器”,出现的是Sublime Text,Atom,Notepad++铺天盖地的推荐和介绍。
以前只用过Visual Studio,也不知道什么文本编辑器好用,下个免费轻量的Notepad++,感觉不错,至少比记事本好多了。虽然颜值没有Visual Studio高,但好歹又快又好用,嗯。
继续浏览。
我注意到了Visual Studio Code,虽然搞不懂它和Visual Studio的区别什么的,但好歹顶着它的 ...
模拟退火(Simulated Annealing)算法
Simulated Annealing以前欠下的算法还是要学的,因为CTF误打误撞知道了模拟退火(Simulated Annealing,SA),对Nano”要用魔法打败魔法,要用随机打败随机”的思路感到惊奇的同时也了解了一下这个利用随机寻找最优解的算法.
Overview模拟退火属于一种概率算法,常用来在一定时间内寻找在一个很大搜寻空间中的近似最优解,且由于算法中引入了一些随机量,所以有很大的概率能获得全局最优解。
用一句话的来说,模拟退火算法即:如果新状态的解更优则修改答案,否则以一定概率接受新状态。
Step模拟退火的过程一般有三个参数,初始温度$T_0$,降温系数$d$,以及终止温度$T_k$,其中$0 < d < 1, d \rightarrow 1$并且$T_k > 0, T_k \rightarrow 0$.
1.定义好初始值以及算法的迭代起始点$x$以及对应的目标函数值$f(x)$.2.以一定的随机策略产生一个新的解$\tilde{x}$,并计算目标函数值$f(\tilde{x})$和增量$\Delta = f(\tilde{x}) - f(x)$.此 ...