冲毕业结束!
4.15完成大论文 随便记记吧 略累 有些不舍有些惭愧。
冲毕业第六七八周记录
第6/7/8周的成果,一直在探索评价均匀性的指标,其中尝试过ks检验、kl散度,最终发现了熵的Kozachenko-Leonenko k近邻估计量这个方法。其中包括12.21开始的新冠,一直到12.29恢复工作。在发现了熵的评价标准后,12月31日尝试用动态规划进行求解,但耗时过长,然后从1月3号开始学习模拟退火直到1月6日完成一维数据实验。
冲毕业第五周记录
第五周主要完成了星表的地平位置绘制,研究选星的均匀性问题,排除了导航星中在球上的选星及玻尔兹曼熵的评价标准,定位到地平式望远镜的高度角、方位角的二维矩形中的均匀选星问题。
冲毕业第四周记录
在novas库的帮助下,顺利由原始hipparcosJ991.25星表转为 标准的J2000,再转到视赤道坐标系下,再转到地平坐标系下
冲毕业第二、三周记录
问题定位到自己制作一个星表,需要从星录中计算地平高度角进行显示。第二、三周在研究stellarium源码 想看看如何将stellarium的代码移植,但计算过程非常绕,方式不现实,终究失败了,但细看了一次源码。
冲毕业第一周记录
秋招结束后的科研一周记录
状压总结
LC464. 单词拆分 II#include <bits/stdc++.h>using namespace std;unordered_map<int, vector<string>> memo;vector<string> backtracking(string &s, int start, unordered_set<string> set){ if (start == s.size()) return {""}; if (memo.count(start)) return memo[start]; cout << " start = " << start << endl; vector<string> ret; for (int len = 1; len + start <= s.size(); ...
面试记录
2022.8.2 15:00
1、接雨水问题
2、进程间通信有哪些方式 7种(匿名管道、有名管道、信号、信号量、共享内存、消息队列、socket)
3、程序、进程、线程有什么区别(背的不好,有点瞎编,面试官皱眉了)
定义程序是含有代码和数据的文件,存储在磁盘中,也就是说程序是静态的代码。进程 运行可执行文件后,会被装载到内存中,运行的程序就是进程。线程是进程的子任务,可以理解为轻量级的进程。
根本区别 进程是操作系统资源分配的基本单位,而线程是CPU调度和程序执行的基本单位
包含关系 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。
资源 每个进程都有独立的代码和数据空间(程序上下文),进程间切换开销大;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
内存分配 进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。
共享进程间信息难以共享。由于除去只读代码段外,父子进程并未共享内存,因为必须采用一些进程间通信(IPC)方式,在进程间进行信息交 ...
c++11新特性
转换构造函数将其它类型转换为当前类类型需要借助转换构造函数(Conversion constructor)
拷贝构造函数拷贝是在初始化阶段进行的,也就是用其它对象的数据来初始化新对象的内存。
Student stu2 = stu1; //调用拷贝构造函数
Student stu3(stu1); //调用拷贝构造函数
拷贝构造函数只有一个参数,它的类型是当前类的引用,而且一般都是 const 引用。
为什么是 const 引用呢?添加 const 限制后,可以将 const 对象和非 const 对象传递给形参了,因为非 const 类型可以转换为 const 类型。
拷贝赋值构造函数移动构造demo get_demo(){ return demo();}int main(){ demo a = get_demo(); return 0;}// 1 执行 get_demo() 函数内部的 demo() 语句,即调用 demo 类的默认构造函数生成一个匿名对象;// 2 执行 return demo() ...
排序算法
https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html
1、冒泡排序从前往后 两两交换,最大的浮到最后
void bubble_sort(T arr[], int len) { int i, j; for (i = 0; i < len - 1; i++) for (j = 0; j < len - 1 - i; j++) if (arr[j] > arr[j + 1]) swap(arr[j], arr[j + 1]);
2、选择排序找到最小 和位置0换,找到次小,和位置1换
void selection_sort(std::vector<T>& arr) { for (int i = 0; i < arr.size() - 1; i++) { ...