Generate...|

园龄:粉丝:关注:

10 2022 档案

排序算法 Sort
摘要:Sort 评价排序算法的标准 时间复杂度 空间复杂度 稳定性:如果一个排序算法能够保留数组中的重复元素的相对位置,则可以被称为是稳定的 冒泡排序 通过两两交换,每次循环都使最值上浮到开头或末尾 关键点在于每次循环结束后都将最值排在开头或末尾 public static void BubbleSort
33
0
0
算法的 union-find 实践
摘要:union-find 各种算法的实现,N 为结点数。 | 算法 | connect() | find() | | | | | | quick-find | N | 1 | | quick-union | 树的高度(最好时 1,最坏时 N) | 树的高度 | | weighted-
27
0
0
关于二分查找
摘要:二分查找 不同的二分查找 用递归实现的二分查找 static int BinarySearch<T>(IList<T> list, T target) where T : IComparable<T> { return BinarySearch(list, 0, list.Count - 1, ta
26
0
0
C++ 实现链表(单双循环链表)
摘要:单链表 template <typename T> class LinkedList { typedef LinkedList self; typedef T value_type; class Node { friend LinkedList; public: template <typename
26
0
0
压缩算法 Compress
摘要:压缩算法 不存在能够压缩任意比特流的算法 归谬法论证:如果该算法存在,由于比特流为离散值,压缩后的比特流至少比原比特流少一个比特,最终可以是任意小的,这显然是荒谬的 小规模字母表 ASCII 字符由 7 位表示,如果所使用的字符种类不足 65 种就可以用少于 7 位的比特记录每个字符,只需要添加一个
126
0
0
图 Graph
摘要:Graph 引 ​ 在线性表中,数据结构是被串起来的,仅有线性关系,每个数据结构只有一个前驱和一个后继,而在树形结构中数据元素之间有明显的层次关系,并且每一层上的数据元素可能和下一层中的多个元素相关,但只和上一层中的一个元素相关。 ​ 在许多计算机应用中情况可能会变得更加复杂,由相连的节点所表示的模
34
0
0
散列 Hash
摘要:Hash 我们使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,于是用这个数组单元来存储这个元素;也可以简单的理解为,按照关键字为每一个元素"分类",然后将这个元素存储在相应"类"所对应的地方。但是,不能够保
20
0
0
查找算法 Search
摘要:查找算法 顺序查找 最简单形式的顺序查找 public static int LinearSearch<T>(IList<T> list, T target) { for (int i = 0, count = list.Count; i != count; ++i) // 一次比较 i and c
26
0
0
算法导论 Introduction to Algorithms #算法基础
摘要:算法基础 分析算法 循环不变式 设计算法 分治法 练习 线性查找的平均检查次数 最好 1 次,最坏 n 次,平均 n+12 次,f(n)=Θ(n)。 使任何算法的最好情况运行时间提高的办法 将最好情况总结,并作为算法的特例实现。但是不应该将函数的最好情况作为判
79
0
0
算法基础 Introduction
摘要:算法要求 正确性(Correctness) 语法正确 输入输出(IO)正确 可读性(Readability) 使用注释(不注释比坏注释好,代码易读比过多注释好) 命名契合(camelCase、PascalCase、UnderScoreCase) 健壮性(Robustness) 完善的异常处理(处理非
21
0
0
线性数据结构 Linear
摘要:Linear 数组概述 数组有四种操作:添加、删除、更改和搜索。 读取是数组中最容易、最快的操作,因为数组以顺序的方式存储在内存中。 数组最突出的能力叫做随机读取,即通过一个下标读取值。 int a[] = {3, 1, 2, 5, 4, 9, 2, 7}; printf("%d", a[3]);
35
0
0
递归
摘要:递归 递归是栈的应用之一 举一个斐波那契数列的例子 int Fbi(unsigned i) { if (i < 2) return i; return Fbi(i - 1) + Fbi(i - 2); } 我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数 在高级语言中,
23
0
0
Jetson Nano 的使用
摘要:工具准备和附件购买 Linux 系统的电脑(可以是虚拟机):根目录 10G 左右空间,用户目录 40G 左右的空间,会在上面安装 SDK Manager 来对 Jetson Nano 进行刷机和安装 SDK。 屏幕:支持 HDMI 连接,屏幕使用 HDMI 接 HD IN 和 micro USB 小
510
0
0
Python 注释 Annotation
摘要:Python注释 Python注释可以分为块注释和行内注释、文档注释、类型注释 块注释和行内注释 # 块注释一般用于描述下方代码 if a > 10 : # 按照PEP8规范,块注释以一个#和一个空格开头,除非块注释中需要使用缩进 a = 10 else: # 块注释应该和它要注释的代码具有同样的缩
100
0
0
博弈论 Game Theory
摘要:GameTheory 概述 等边际原理:最优的资源配置必须资源在每种用途上的边际贡献都需相等 羊群效应:大家做什么,自己也跟着做什么,不管对错 社会的基本问题:协调问题、合作问题 协调问题的核心是人们如何预测他人的行为,最直接的办法是沟通和交流,需要行为规范的知识、对对方特性的知识,甚至对方如何看待
259
0
0
意志力 The Will Power Instinct
摘要:意志力的本质 前额皮质分成三个区域,掌控“我要做”、“我不要”和“我想要” 两个自我:原始本能和自控系统 意志力的前提:自我意识,认识你自己,考虑每一个决定 训练方法 冥想,控制走神 深呼吸 锻炼 充分睡眠 明智地使用自控力 锻炼自控力 自我记录 选择更难的一些小事 三思而后行 应激反应和三思而后行
63
0
0
学会提问 Asking the Right Questions
摘要:《学会提问》这本书可以被分为三个部分: 正确提问和批判性思维的关系,为什么要学会提问 什么阻碍了批判性思维 如何分析一个论证 为什么要学会正确提问 因为这个世界是嘈杂的,总有人坚称我们一定要按他们所说的那样去做。他们努力塑造我们的行为习惯,但他们说的话至多是真假参半。如果我们不想被一些专家牵着鼻子走
77
0
0
Wireshark 的使用
摘要:下载地址 Wireshark 是一个拦截和观察网络包的工具。 工作原理 由于更上层的数据最终都会成为链路层的一个个帧(frame),Wireshark 接受链路层(link-layer)的数据包(packet)的副本后,经过内部的包分析工具(packet analyzer)实现包的拦截和观察。包分析
40
0
0
K 近邻算法 K-NearestNeighbor
摘要:理论 K-NN,即 k 近邻算法,是一种基本的分类和回归的算法,其主要思想可以归纳为:选择与待检测数据最相近的 k 个数据,再将这 k 个数据的成分最多的类别作为待测数据的类别。 假如给定数据 $T={ (\pmb{x_1}, y_1), (\pmb{x_2}, y_2), \dots (\pmb{
51
0
0
线性回归 Linear Regression
摘要:线性回归的预设 线性 只能通过每个样本各维的线性组合获得预测结果,这使得函数很简单,但拟合能力较弱。 同方差性 每个样本的方差不变。方差不同会使得拟合函数对某些数据敏感性有差异。 独立性 每个样本独立于其他样本 固定特征 特征数是固定的 非多重共线性 特征直接不能存在线性关系 $$ \begin{a
35
0
0
逻辑回归 Logistic Regression
摘要:基本公式 $$ \begin{align*} F(x)&=P\lbrace X\le x\rbrace=\frac1{1+e^{(\mu-x)/\gamma}}\ f(x)&=F^\prime(x)={e^{(\mu-x)/\gamma}\over\gamma(1+e^{(\mu-x/\gamma)
28
0
0
离群值 Outliers
摘要:标准化 $$ \begin{align*} \pmb x&=\left(x^{(1)},x^{(2)},\dots,x^{(n)}\right)\ \pmb\mu&=\frac1m\sum_{i=1}^m\pmb x_i\ \pmb\sigma&=\sqrt{\delta+\frac1m\sum_{
218
0
0
向量分界线
摘要:算法分出 n 个类(c1,c2,,cn)之后,得到 n 个向量 ww,分类方法为 c=argmaxci[c1,,cn]wwiTxx。 求 ww1 和其他向量 $\pmb
42
0
0
L2 正则化下的解(线性回归到岭回归)
摘要:L2 正则 结论 $$ \begin{align*} J=(\pmb X\pmb w-\pmb y)^T(\pmb X\pmb w-\pmb y)&\implies\pmb w=(\pmb X^T\pmb X)^{-1}\pmb X^T\pmb y\ \widetilde J=(\pmb X\
42
0
0
贝叶斯分类
摘要:贝叶斯分类器 $$ \begin{align*} y&=\underset{c_i}{\arg\max}\left\lbrace{P[\pmb X=\pmb x\mid Y=c_i]P[Y=c_i]\over\sum_kP[\pmb X=\pmb x\mid Y=c_k]P[Y=c_k]}\righ
24
0
0
聚类
摘要:聚类 聚类方法在于寻找数据中的集群(clusters),在同一个集群中的数据在某些方面更加相似。这同时也是对数据的一种压缩,因为我们使用了更小的集合—集群—来表示更大的数据。也可以理解为寻找有用特征的一种方式,如果一系列数据可以很好地被集群中心点表示,那么很有可能我们发现了更好的特征。 为了获得聚类
39
0
0
用numpy实现最简单的前馈神经网络——反向网络建立篇
摘要:在前一篇文章中,已经初略的建立了前向神经网络,但是前向神经网络大量的前馈计算使其只有较低的速度,因此我们来建立反向神经网络。 本篇主要是公式 链式法则 在学习偏导数的反向传递之前,需要有对链式法则有一定的了解 $$ \begin{align*} \text{provide that }&y = y(
32
0
0
用numpy实现最简单的前馈神经网络——正向网络建立篇
摘要:根据上一篇文章,来构建神经网络吧 明确输入和输出 选择合适的各种函数 用矩阵和激活函数建立起从输入到输出的拟合函数 用正向传播或反向传播获得损失函数的偏导数(注意对一定的数据集来说自变量为 WWAA 固定) 用梯度下降法努力使损失函数最小 mnist分析(输入分析) 下
75
0
0
用numpy实现最简单的前馈神经网络——神经网络架构篇
摘要:基础知识 梯度(高等数学)、矩阵运算(线性代数)、numpy(ndarray)、python基础语法 目录 神经网络架构 神经网络建立 先用比较简单的正向传播建立好框架,再用反向传播改变算法 实例:学习mnist手写数字数据集 {:toc} 神经网络架构 矩阵 拟合 梯度 矩阵运算 我们可以把矩阵看
58
0
0
卷积层和池化层的实现
摘要:为什么卷积神经网络的能力更强?以 mnist 数据集为例,在普通的神经网络中,输入的数据是长度为 784 的像素。但实际上图像本身 28×28 的的二维结构已经被破坏了,每个像素与之上下更多像素之间的位置关系都消失了。神经网络所看见的世界是由一维向量构成的,自然无法与现实形成更好的
47
0
0
牛顿迭代法
摘要:最优化方法 迭代法 x f(x)=x 求解非线性方程 f(x)=0,可将其改写为具有解为不动点形式的另一个函数 g(x),使得 x[f(x)=0g(x)=x]。取任意初始值 x0 和相应的迭代结果 $
159
0
0
Linux 进程
摘要:引入进程的原因 进程是为了刻画并发程序的执行过程而引入的概念,进程管理就是对并发程序的运行过程的管理,也就是对CPU的管理。 进程管理的目标是最大限度地发挥CPU的处理能力,提高进程的运行效率。 并发执行 程序的并发执行是指若干程序或程序段同时运行。它们的执行在时间上是重叠的。 程序在并发执行时会导
139
0
0
Linux 存储
摘要:存储管理概述 存储空间的分配; 存储地址的变换; 存储空间的保护; 存储空间的扩充。 内存的分配与回收 内存分配是为进入系统准备运行的进程分配内存空间,内存回收是当进程运行结束后回收其所占用的内存空间。 存储分配方案主要包括以下要素: 存储空间的描述结构。 存储分配的策略。 把程序中的逻辑地址转换为
104
0
0
Linux 文件
摘要:Linux中一切皆为文件 文件 文件是具有名字的一组相关信息的有序集合,存放在外部存储器中。 文件系统 文件系统是操作系统的一个重要组成部分,它负责管理系统中的文件,为用户提供使用文件的操作接口。 文件系统由实施文件管理的软件和被管理的文件组成。文件系统软件属于系统内核代码,文件则按特定的格式存放在
94
0
0
C#中的 `true` 和 `false` 运算符
摘要:C#中的true和false运算符 基础用法 我们先定义一个示例用的类 public class BoolTest { public int X { get; set; } public BoolTest(int x) { X = x; } public static bool operator t
151
0
0
C#笔记(输入输出、格式化、注释)
摘要:输入输出 ConsoleKeyInfo c; do { c = Console.ReadKey(); // 读取按键 } while (c.Key != ConsoleKey.Escape); // 等待输入Esc键 string s = Console.ReadLine(); if (s != "
67
0
0
C#笔记 其三
摘要:自定义集合 集合接口 IList<T>列表 关键词:变长数组、有序集合、任意访问、索引 常用方法: list.Add(T); list.Remove(); list.RemoveAt(int); list.Sort(); list.Sort(IComparer<T>); list.Contains(
19
0
0
C#笔记 其二
摘要:良好的构建 重写基类object成员 ToString() 如果没有重载 ToString() ,那么这个函数返回类型的名称 System.Console.Write(new Random().ToString()); // display: System.Random 但有时候我们需要这个函数输出
28
0
0
C#笔记 其一
摘要:类 类的声明和实例化 class A{} // another file F(){ A a = new A(); // 实例化类,new <类名>(实例化参数) A aa; aa = new A(); // 先声明后实例化同样可行 } 类的成员 字段和方法 class A { private str
24
0
0
C#笔记 其零
摘要:C#语言基础 数据类型 $$ \begin{array}{|c|c|c|} \hline \text{数据类型} & \text{值类型} & \text{引用类型} \ \hline & sbyte \space byte \space short \space ushort & object \
24
0
0
C# 实现排序算法
摘要:C#实现各种排序 每种排序的要点和实现 文章中参数Func<T, T, bool> comp的意思是:排序后对于任意i < j,不可能有comp(list[j], list[i]) 冒泡排序 每次循环都将最值放到最前或者最后 倒着排序,只需访问一次list.Count(可选) 使用sorted布尔变
38
0
0
C++ 的有理数类 Rational 实现
摘要:class Rational { static inline int gcd(int a, int b) { if (!b) return abs(a); while ((a %= b) && (b %= a)) ; // do in while return a + b; } public: st
12
0
0
用 C++ 实现 Python 中的 range
摘要:在C++中实现Python的range 代码在最后,可以先看代码再看说明 在实现过程中几个应该注意的问题 整型溢出 for (auto i : irange(1e9, -2e9, -2e9)) std::cout << i << "\n"; std::cout << '\n'; // 如果不注意溢出
77
0
0
c++ 中 const, constexpr 的使用
摘要:C++ 与 C 语言相比有着更强的类型检查,包括四种 cast,左值右值之分,reference,以及最重要的——对 const 的要求。 const 是一个相当麻烦的要求,比如其强大的“传播性”——只要在一个地方使用,就可能蔓延到各个角落,出现各种编译错误。但编程实践证明 const 的使用是值得
42
0
0
三次异或交换数字
摘要:三次异或交换数字 在本文表示异或 void swap(int * restrict x, int * restrict y) { if (x == y) return; *y = *x ^ *y; *x = *x ^ *y; *y = *x ^ *y; // *y ^= *x ^=
62
0
1
汇编代码小结
摘要:本文的叙述将基于 x86-64 为什么要学习汇编语言 汇编语言其实就是人能识别的机器语言,理解汇编语言可以是学习计算机系统的必经之路。 前置知识 指令集架构(Instruction Set Architecture, ISA) 指令集架构是描述计算机行为的一层抽象,它提供了程序员应当了解的计算机工作
451
0
0
if 和三元表达式的区别
摘要:在 C 语言层面除了写法以外没什么区别。 int a = 5; a == 0 ? puts("x") : puts("z"); if (a == 0) { puts("x"); } else { puts("z"); } 在汇编语言层面上有一些区别,if 倾向于使用条件控制转移(j 系列)命令,三元
33
0
0
Linux Shell 函数
摘要:Shell函数 #!/bin/bash 定义 在被使用之前,函数必须已经被定义 如果函数名重复,后一个函数会覆盖前一个函数 function foo { echo "foo" } # 也可以不写function关键字 bar { echo "bar" } 参数 运行函数就如同运行一个脚本,它也具有参
34
0
0
Natural Number Game
摘要:因为用 Verilog 会有颜色显示,所以用的 Verilog。 记录一下 Natural Number Game 的答案,好久以前做的,但没做完。 Tutorial world example1:xy+z=xy+z lemma example1 (x y z : myna
294
0
0
类型系统与程序语言——无类型系统
摘要:无类型系统 本节为其他章节作引。 无类型算数表达式 一门语言需要语法、语义、语用来构成。现在以无类型算数表达式这个非常简单的语言开始探讨,我们将明确它的语法和语义来充分了解这门语言。 语法 无类型算数表达式语言的语法中只包含 $true, false, 0, \operatorname{succ},
60
0
0
类型系统与程序语言——子类型和递归类型
摘要:前一篇类型系统与程序语言——简单类型 子类型和递归类型 子类型 Subtyping 定义 如果没有子类型,那么 (λr:{x:Nat}. r.x) {x=0,y=1} 在语法上是无法判断出类型的,因为形参和实参的类型不匹配。为
129
0
0
类型系统与程序语言——简单类型
摘要:简单类型 经过上一篇类型系统与程序语言——无类型系统的学习,已经对 Lambda 表达式初窥门径,但在使用时却会产生一些问题,比如可能产生 stuck 语句。上一章定义链表时用到了许多参数,但是如果不知道上下文,很难直接了解每个参数的含义。这时候一个类型系统就可以帮助我们规避这种错误和麻烦。 基本上
33
0
0
C语言的单引号问题
摘要: C语言的单引号问题 单引号的原理 C语言的单引号实际上时将' '内的字符转化为ASCII码对应的整型值,并且在存储时占据一个字节,即sizeof(char) // 第一个例子 int main() { char ch; ch = '?'; printf("%d, %c", ch, ch); /
77
0
0
C语言结构体中的零长数组
摘要:C语言结构体中的零长数组 实例 struct A { int len; int var[0]; }; struct B { int len; int *var; } 其中,结构体A使用了零长数组,结构体B用了指针。 为什么要用零长数组 我归纳了以下三点原因: 节约空间 在int和指针占4字节的机器上
33
0
0
为什么说“We must not include limits
摘要:问题 #include <dirent.h> struct dirent *d; d->d_name; IDE 提示时出现如下字样 头文件中则是 struct dirent { __ino_t d_ino; __off_t d_off; unsigned short int d_reclen; un
26
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起
  1. 1 とおいよびごえ 凋叶棕
  2. 2 かぜのねいろ 凋叶棕
  3. 3 Milky Way Train 流派未階堂
  4. 4 nostalgia 流派未階堂
  5. 5 桜花繚乱 はちみつれもん
  6. 6 胡蝶之夢 はちみつれもん
  7. 7 色は散りゆく はちみつれもん
  8. 8 暮色蒼然 はちみつれもん
  9. 9 追想、桜ノ國 はちみつれもん
  10. 10 意にそぐわぬリターニー 凋叶棕
とおいよびごえ - 凋叶棕
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.