精选分类

文章列表

8.7k8 分钟

本节对应教材4.2节内容。 注:本节后半段会涉及到一些类与对象的相关内容,可以先跳过,待学过相关知识后再回来看 # 隐式序列(Implicit Sequences) 与之前的显式序列不同,我们可以建立一个对象,可通过其访问序列中的元素(不需要提前计算元素的值)。 一个直接的例子就是前面使用过的range()容器,其对应的序列并不是显式存储在内存中的(不然内存可能会爆),而是在访问/调用时实时计算对应元素的值。这种按需求值的方法被称为惰性计算(lazy computation)。 # 迭代器(Iterators) 在python中,迭代器作为一种对象提供对序列中的值进行顺序访
5.7k5 分钟

本系列笔记参考: Lecture:EECS 127 sp24 官网:EECS 127 课程讲义:Course reader 教材:Optimization Models 与 Convex Optimization # 课程介绍 本课程需要的先修条件: 线性代数或类似课程(第一节课会对相关知识进行回顾) CS70(离散数学)相关课程(作为逻辑推理的基础) 微积分相关课程(会涉及到梯度等计算) 本课程使用python语言进行编程,所以也需要一定的python基础(CS61A水平即可)。 本课程核心围绕最优化理论展开,在回顾完线性代数内容后,首先会介绍梯度下降(gradient desc
3.4k3 分钟

# 因果关系(Cause and effect) 在生活中,对于某些现象,我们往往希望能分析出其背后的原因。这时,我们可以通过对相关数据的分析得出因果关系。下面给出一些基本概念: 观察性研究(observational study):指研究者只观察数据、而没有直接参与数据产生的研究;与之相对的是干预性研究(interventional study),即对研究对象施加某种特定的干预措施,以评估该措施对研究对象产生的效应或影响的研究。 处理(Treatment):可以理解为影响 结果(Outcome) 的可能因素。因果关系的核心问题就是处理是否对结果有影响。 个体(Individual):研究
4.8k4 分钟

为了督促自己看文献汲取人类科研精华,笔者决定开设这个系列,用于记录自己阅读的统计及计算机相关或不太相关的期刊、会议文章。鉴于笔者目前仍为大二菜鸟,故可能无法完整地复现文章的观点,请多多包涵。 目前考虑阅读的期刊与会议包括(参考封面设计doge): 统计“四大”(JASA、JRSSB、The Annals of Statistics、Biometrika); STAT相关:STARF、ARSIA、JDS…… CS/ML/AI相关(会议为主):JMLR、ICLR、AAAI、NeurIPS、UAI…… 其他期刊会议(AISTATS……) 今日作为Day 1,找了一
1.1k1 分钟

本系列笔记参考: Lecture:sp23 公开资料仓库:materials 官方教材:Computational and Inferential Thinking DATA 8大致对应国内的数据科学导论(或类似课程),内容比较基础,主要讲述一些基本的数据处理与可视化方法,为后续进阶课程(如DATA 100,DATA 140)做铺垫。 本课程使用Python+Jupyter Notebook进行数据分析。安装Anaconda(或类似环境)即可满足要求。使用的库主要为python的datascience库(由UCB教授们开发) # 介绍(Introduction) 什么是数据科学?数据科学
4.7k4 分钟

# 纠错码(Error Correcting Codes) 在信息传输中,信息往往会丢失甚至损坏。一个比较容易想到的方法是重复传输信息直到丢失的信息被补全,但这样效率很低。本节我们介绍一种新的信息传输思路——加入“纠错码”。纠错码是信息论研究中的一个重要部分,也是控制论、通信理论等的基础,同时也在现实生活的各方面都有着重要的应用。 纠错码主要分为两种:一种是基于有限域多项式的代数编码,另一种则是基于图论的组合编码。本节主要讨论的是前者,其也被称为里德-所罗门码(Reed-Solomon Code),由它的两位发明者命名。 # 擦除错误(Erasure Errors) 我们设想以下场景:在
17k15 分钟

# 数据抽象(Data Abstraction) 在前面的章节中,我们主要讨论的是函数的一些抽象(即将函数的具体实现与函数的模块化处理分离)。而本节开始,我们将聚焦于数据本身的抽象。 在现实世界中,数据往往无法直接用程序语言的内置数据类型直接表示,通常需要不同数据类型进行复合表示。而数据抽象就是让数据的具体组成细节和其使用的方式进行分离,使得设计的函数不需要考虑复合数据的构成,将其作为整体进行处理。当然,也需要函数作为链接数据整体与具体部分的桥梁。 下面以有理数的构建与计算为例具体阐释这一概念: # 示例:有理数 这里我们将有理数统一表示为分子(numerator)/分母(de
3.9k4 分钟

# 多项式(Polynomials) 多项式对我们而言并不陌生,从中学的一次、二次函数到大学线性代数里的nnn次多项式,它在代数学里具有重要的作用。而在本节,我们将尝试将多项式应用于模运算及密码学的应用中,探讨如何应用其性质构造秘钥共享。 首先我们回顾一下多项式的形式:p(x)=adxd+ad−1xd−1+⋯+a1x+a0p(x)=a_dx^d+a_{d-1}x^{d-1}+\cdots+a_1x+a_0p(x)=ad​xd+ad−1​xd−1+⋯+a1​x+a0​,其中xxx为变量,ai(0≤i≤d)a_i(0\leq i\leq d)ai​(0≤i≤d)为系
3.4k3 分钟

# RSA公钥密码系统 本节我们将阐述模运算在密码学中的一大应用:RSA密码系统。这一系统的名称来源于它的三位发明者:Ronald Rivest, Adi Shamir 和 Leonard Adleman。 # 场景 密码学的基础设定场景如下: 张三与李四需要通过某个通信线路(可能不安全)进行信息传输,而窃听者王五会进行监听并试图破解传输的信息内容。 假设张三需要传输信息xxx给王五,他会先用加密函数将xxx加密为E(x)E(x)E(x);李四在收到消息后会使用解密函数DDD将加密信息进行换源,即:D(E(x))=xD(E(x))=xD(E(x))=x。
2.9k3 分钟

# Primitive and Reference Types(原始与引用类型) 本节将会介绍一些基本的数据类型及其使用方式,并围绕列表这一核心进行阐释。 # 原始数据类型(Primitive Types) 首先简单提一下变量数据在计算机中的存储方式:无论是数字还是文本,在计算机中均以二进制列进行存储,而程序中的变量类型则指定了二进制列的解释方式。 在Java中,定义一个变量需要指定其变量类型,这相当于在内存中开辟了一段存储变量的二进制空间(当然,我们无法获取到具体的存储地址,这点和C语言不同)。而对变量进行赋值就相当于在这个空间中存储这个值。 上面提到的变量类型可以是:byte, shor