Alex Li的学习笔记

最恶心的一学分课,手写预习报告+实验报告,各种虚拟实验、实体实验,根本不会啊!
实验报告只能靠学长学长的legacy了...

参考视频:
【使用自准直法求薄透镜焦距-哔哩哔哩】 https://b23.tv/H8bOoOL

实验要求


点击展开/折叠实验要求
《透镜焦距》实验要求

一、预习要点
了解本实验的实验目的、原理、仪器及待测物理量等,在预习报告中完成以下预习要点:

  1. 薄透镜成像公式及其使用条件分别是什么?
  2. 作图并说明如何利用“大像追小像”的方法调节等高共轴。
  3. 什么是测读法?其目的是为了减小系统误差还是随机误差?
  4. 利用自准直法测透镜焦距时,如何减小透镜中心与支架刻线位置不重合造成的误差?该误差是系统误差还是随机误差?
  5. 给出共轭法待测数据列表

二、课堂实验操作

  1. 观察并记录凸透镜的成像规律
  2. 利用“大像追小像”方法调节等高共轴
  3. 共轭法测量凸透镜焦距
  4. 自准直法测量凸透镜的焦距
  5. 自准直法测量凹透镜焦距(选做)
  6. 自准直法测量凸面镜焦距(选做)
  7. 仪器整理、清理实验台

三、实验报告撰写要点

  1. 预习报告+原数据记录(均带有老师签字)。
  2. 对观察现象及测量数据进行处理,计算透镜焦距及其不确定度。
    ● 观察并记录凸透镜的成像规律
    ● 共轭法测量凸透镜焦距
    ● 自准直法测量凸透镜的焦距
    ● 自准直法测量凹透镜焦距(选做)
    ● 自准直法测量凸面镜焦距(选做)
  3. 课后思考题。
  4. 报告字迹工整,态度端正。

四、课后思考题:

  1. 在自准直法测量凸透镜焦距过程中,可能会发现有两个像,但只有其中一个才是我们需要的,如何判别?并分析另一个像的成因。
  2. 请查阅资料列举透镜在科学技术、日常生活等方面的重要应用。

五、注意事项

  1. 实验过程中注意实验仪器的使用及保护;实验结束后要求切断电源,设备摆放整齐、台面整洁、凳子归位。
  2. 课后一周内交报告。无特殊理由,每超过一周扣10分;
  3. 不合格的报告(卷面成绩低于60分)要求返回重写。返回后一周内提交的卷面成绩最高60分,超过一周则提交无效,报告保留原始成绩。
  4. 未完成的实验内容(无数据),不需要做数据处理。


学长的预习/实验报告圣遗物
https://bhpan.buaa.edu.cn/link/AA0285D6AF39A04C1FACC90E9B7B50FFB6
文件名:透镜焦距测量.pdf
有效期限:2029-10-26 20:01
提取码:ganA

基础知识

各种镜

实验中主要涉及到三种镜(属于多一点都不学),分别是凸透镜、凹透镜、凸面镜。
凸透镜与凹透镜属于薄透镜,其定义为透镜的中心厚度d远小于其焦距f的透镜
凸面镜属于球面镜,球面镜与透镜的区别是一个是反射元件,另一个是折射元件。

阅读全文


第一章 随机事件的概率

1.1 随机事件与样本空间

  1. 随机试验 —>(每一个结果) 基本事件 $e₁, e₂, …, eₙ$ —>(属于) 随机事件 A, B, C

    • 必然事件 S 或者 $\Omega$
    • 不可能事件 ∅
  2. 样本空间:事件的全部基本事件组成的集合,记为 S 或 Ω
  3. 常见运算 :

    • $ A \subset B \quad A = B $
    • $ A + B (=) A \cup B $
    • $ AB (=) A \cap B $
    • 互斥 $ A \cap B = \varnothing $
    • 对立事件 $ AB = \varnothing, A + B = S $
    • $ A - B $

阅读全文


线性DP:递推方程有明显的线性的顺序。
考虑两个问题:如何状态表示(集合+属性)、如何状态计算(划分状态转移集合)
T1:
Screenshot_20250914_211245_com.quark.browser.jpg
状态表示: 记录所有从起点走到(i,j)的路径中的路径数字之和的最大值。
状态计算:f[i,j] = max(f[i-1][j], f[i-1][j-1]) + a[i,j]
需要注意需要把f[i,j]初始化为极小值,避免算到三角形右边的元素。

T2:最长上升子序列
Screenshot_20250914_221320_md.obsidian.png
状态表示:使用一维数组,f[i]表示以第i个数结尾的上升子序列的长度的最大值。
状态计算:计算f[i],去看倒数第二个数是哪个数,共i种可能,以编号1、2、3、……、i-1结尾或原本没有数(记为0)。每个循环先看是否满足上升的条件,若满足,则这个f[i]_j = f[j]+1,最后计算一个最大的f[i]_j就得出了f[i]的值。
时间复杂度计算:状态数量 × 转移的数量。此时是$n^2$。

#include <iostream>
#include <algorithm>

using namespace std;

int n;
int a[N], f[N];

int main(){
    scanf(“%d”, &n);
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    for (int i = 1; i <= n; i++){
        f[i] = 1; //先全部赋值为1,只有a[i]一个数
        for(int j = 1; j < i; j++)
            if (a[j] < a[i])
                f[i] = max(f[i], f[j] + 1);
    }
    int res = 0;
    for(int i = 1; i <= n; i++) res = max(res, f[i]);
    printf("%d\n", res);
    return 0;
}

如何保存最长序列?
创建一个数组g[i],存储每个转移是怎么转移过来的(记录上一个状态的id,也就是找f[i,j]最大值时找到的位置)。

阅读全文


本章主要介绍动态规划的常用思路,并介绍了背包问题里面的01背包、多重背包的解题思路和代码

01背包

01背包问题为:给定背包总体积,给N个物品,每个物品有一个体积和重量,只能用一次或不用,问最大重量是多少?
下面是思路,定义函数f(i,j)代表:仅包含前i个物品且总体积小于等于j的背包的最大价值是多少,故最终需要的结果是f(N,V)
初始时把所有值都设为0,且i或j等于0的本身值就为0。
对于一个新的状态f(i,j),可能的值有下面两种可能,如果包含i,则答案为f(i-1,j-vi) + wi;如果不包含i,则为f(i-1,j)。这两个值取最大值就可以算出f(i,j)

代码:

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1010;

int n, m;
int v[N], w[N];
int f[N][N];

int main(){
    cin >> n >> m;
    for(int i=1; i <= n; i++) cin >> v[i] >> w[i];
    for(int i=1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            f[i][j] = f[i-1][j];
            if(j >= v[i]) f[i][j] = max(f[i][j], f[i-1][j-v[i]] + w[i]);
        }
    }
    cout << f[n][m] << endl;
}

阅读全文


继承

继承使用关键词extends,继承格式为class Son extends Father{}
Java不支持多继承(一个类同时继承自好几个类),支持多重继承、不同类继承同一个类。

特性

  • 子类会继承父类的非private的属性和方法;
  • 子类可以添加自己新的属性和方法;
  • 子类可以重写/实现父类的方法/抽象方法;

    继承关键字

    extends关键字: 继承自某一个父类;
    implements关键字: 继承接口;
    super和this: super用于实现对父类成员的访问,比如在实现子类的构造方法时可以直接调用super(可有参数)来完成父类的构造;this是自己的引用,常用于方法或者构造方法里,若方法里的传参有和类中相同名字的参数,使用this.name = name可以实现调用,如果没有相同的参数,直接使用名字就能完成操作,不需要this;

阅读全文