4.3k4 分钟

# 定义与使用类(Defining and Using Classes) # 静态方法(static methods) 如前面所述,java语言中所有代码都必须放在类(class)中,而大部分代码都放在方法(method)中(可以理解为可执行一系列操作的函数)。而为了运行这些方法,我们需要对其进行调用。 以下面这个Dog程序为例: public class Dog { public static void makeNoise() { System.out.println("Bark!"); } } 单独编译这段代码没有问题,但运行这段代
4k4 分钟

# 递归函数(Recursion function) 如果一个函数直接或间接调用了自身,那么它就被称作递归函数。一种常见的形式是,在函数体中调用函数自身的功能。 下面以求自然数所有位数的和作为例子: 递归的核心理念在于简化问题(即“分而治之”的思想)。在将自然数分解的过程中,会频繁用到取模(n%10)和整除(n//10)操作,而求解n//10的所有位数和的方法和n是完全一致的。于是就可以用递归函数实现上述操作: >>> def sum_digits(n): """返回正整数n的所有位数之
25k22 分钟

# 深度学习的历史发展 1943年,神经科学家Warren McCulloch和逻辑学家Walter Pitts合作提出了“McCulloch-Pitts (MCP) neuron”的思想。MCP可对输入信号进行线性加权组合,再用符号函数来输出组合结果。MCP是最早的神经网络雏形。 1949年,心理学家唐纳德·赫布(Donald Hebb)提出了著名的赫布理论(Hebbian theory)。指出“神经元之间持续重复经验刺激可导致突触传递效能增加”,“神经元之间突触的强弱变化是学习与记忆的生理学基础”。这一理论为联结主义人工智能研究提供了认知神经心理学基础。 1958年,David Hube
16k15 分钟

# K均值(K-means)聚类 输入:nnn个数据(无任何标注信息) 输出:kkk个聚类结果 目的:将nnn个数据聚类到kkk个集合(也称为类簇) 应用:可用于图像分类、文本分类等 # 定义与算法描述 nnn个mmm维数据{x1,x2,…,xn},xi∈Rm(1≤i≤n)\{\mathrm{x}_1, \mathrm{x}_2, … , \mathrm{x}_n\},\mathrm{x}_i\in\mathbb{R}^m(1\leq i \leq n){x1​,x2​,…,xn​},xi​∈Rm(1≤i≤n) 两个mmm维数据之间的欧氏距离为d(xi,xj)=(xi1−xj1)2
12k11 分钟

# Introduction of Graph Theory 从本节开始,我们将讨论图论中的一些知识。在开始之前,首先明确:图论在计算机科学中有什么用? 图(Graphs)适合用于将大数据(big data)及之间的关系抽象化(abstraction,即使用一个简单的模型提取复杂情况的本质) 图论对于进一步理解并应用归纳法有很大的作用。 在现实生活中,很多地方都存在图(当存在大量关系时也被称为网络network),比如互联网,地图,大脑的神经元网络,社交网络等…… 图论可以解决许多问题:网页搜索推荐(Pagerank),染色问题,排线问题等。 目前公认的图论起源是1736年欧拉关于哥尼
3.4k3 分钟

本系列笔记基于官网发布的slides,videos,textbook以及B站Lecture视频编写。 CS61B官网(2025 Fall):CS 61B Fall 2025 CS61B Lecture(2024 Spring):CS61B Lecture sp24 注:本课程使用的编程语言为Java,但是否熟悉这个语言对学习此课程影响不大。(个人认为它相当于C++去掉C) 关于Java的安装配置,可参考:Java开发环境配置教程。如果你和我一样使用的是vscode,并且电脑上已经安装了java版minecraft,那么只需要在vscode中安装对应的java插件就行() 但为了更好理解本课程,
7.7k7 分钟

# Higher-Order Functions(高阶函数) 之前我们已经了解到,函数通过接收以表达式为形式的参数,输出表达式(值)。而高阶函数则是将表达式改为函数,即接收函数形式的参数,或者输出形式为函数。 这种高阶函数具有以下特点:模块化(Modularity),抽象化(Abstraction)以及关注点分离(Separation of Concerns)。 # 函数作为参数 有时我们在设计多个函数时,这些函数之间可能会高度相似,只有微小的部分存在区别,比如: from math import pi, sqrt def area_square(r): ""
9.1k8 分钟

注:强烈建议看完SQL入门笔记后再阅读此笔记! # JOINs and UNIONs 在入门笔记中,我们使用了INNER JOIN合并两个表格。这一节我们会使用更多的JOIN语句,以及使用UNIONs获取多个表格的信息。 这里我们使用以下表格作为示例(若无特别说明,以下图片均源自Kaggle教程): 和入门笔记中使用的表格略有不同,我们在两个表格中各自设置了一个无匹配对象的数据。 # JOINs 对于上面的表格,如果使用INNER JOIN就只会保留两个表格的前4条数据。代码如下: query=""" SELECT p.Name A
14k12 分钟

教程链接:https://www.kaggle.com/learn/intro-to-sql 注:本教程使用python语言执行sql语句的相关操作,数据均源于Google BigQuery。 Google BigQuery官方文档:https://cloud.google.com/python/docs/reference/bigquery/latest/index.html Kaggle上收录的Google BigQuery数据集:https://ww
2.9k3 分钟

# Statements and Control(语句与控制) 语句(statements)与表达式(expressions)不同,它一般不会直接返回值,而是执行一些操作 我们在之前已经遇到了一些语句:赋值语句,函数定义def,return语句等 注意:纯函数本身作为语句执行没有意义,它会计算表达式的值然后将其丢弃,需要将结果通过赋值语句存储或通过return输出才有意义。 # 复合语句(Compound statements) 复合语句通常由多个简单语句(当然也可以包含复合语句)组成,格式如下: <header>: <statement>