Hi,道友 👋

  • 欢迎来到王林修炼日记😍

2024-01-07 周记 0x003

Life 前段时间晚上跑步顶不住,太冷了,现在温度稍微好转,一周两次五公里吧。做点室内的锻炼活动。 每天五十个俯卧撑。。。 每周还是有个固定时间看看电视,游戏放松下。 这周没有吃外卖,健康的一周 😊。 感觉双休日每次吃完饭可以散步半小时左右。 Share SAT Solver repo 写了个 Sudoku 使用 SAT 来解(Boolean satisfiability problem) 例如 3\*3 的 board X X 3 4 X 6 7 8 X 条件有: 外维数组是里的元素是and的关系 里面子数组里的元素是or的关系 [ [((0,2,3), True)], //表示(0,2)的位置是3 And ... [((2,1,8), True)], // 按下面的思想, 继续列出所有条件,这里只举例 // 即 (0,0)==2 and (0,1)!=2 and (0,2)!=2 [((0,0,2), True)] [((0,1,2), False)] [((0,2,2), False)] ... ] 思想: 初始化已经在 board 上确定的元素的条件。 对于每个 cell 要求只能是 1-9 中的数,并且不能出现两种情况(即是 1 又是 2)。 每行,每列要求只能出现一次是 1-9。如行要求举例:Pos(0,0)=1 时要求 Pos(0,1)....

January 7, 2024 · 4 min · 韩立

十二月

十二月 随笔 水平有限,乱写记录。 读书时光 小学及以前的事,已经是挺遥远的事了,已经记不情具体的细节了。这所小学基本上是给务工者提供的,本身没有什么资源,在校里能接触到的东西太少。 在三年级左右,黑网吧的风起,导致当时被家里附近玩的比较近的上着初中的朋友来着进入到黑网吧,看着里面各种各样的游戏,对我内心深带来极大的震撼和吸引。从那时起,开始接触到网络游戏(CF/DNF/QQ 飞车/LOL/洛克王国/造梦西游),并沉迷于此。 当时玩造梦西游还会去网上找此破解教程,用 CE 跟着一步一步的个性内存数据,完全不知道这是干啥的,但是可以让游戏玩起来变的更爽,很快就腻了。。。 大抵是快到了六年级,清楚有升初中这件事,暑假的时候报了个数学补习班,当时是到家在数学老师家里,好像是十几节课 1K 块? 这段时间毫无疑问是快乐的,过着无忧无虑的生活。 莫名其妙的随便进入到一所初中就读,当时本身更不是在意这件事。 初中基本上有很多一部分都是本地人,部分人多少带有歧视的味道。 学校里看到的事太多了,教室里搞恋情,下课就 XXX,欺软怕硬的打架等等。 当时还是沉迷游戏 LOL,基本上不写作业,六点多到学校里开始抄别人的作业。 期间有段时间沉迷小说,双休日基本上不出门看到晚,由于在发育阶段,导致近视极快。现在看来发育阶段还是要多注重户外运行,不要长时间接触电子产品。 多想重开这段经历 很快来到职高,没有任何悬念。职高当时选的是软件技术 3+2(2 年大专)。 当时显然接触到电脑挺久的,但是根本不知道有编程这回事儿,足以看出我只会用电脑打游戏、看电脑,没有任何用处。 职高里有个可以不用上课的团体那就是集训队(各中准备中学生的比赛),为了进这个团体,当时班主任要求报名候选的人选进行 100 遍的抄写 VB 代码。内心深出肯定是渴望的,因为不用上课,然后就开抄,根本不懂,也不需要看明白代码。抄到 50 遍左右?抄不到了放弃。 前期在校学习编程还是很坎坷,根本不懂,很快放弃兴趣。(用的 VB 教学) 莫名其妙的突然想成为黑客,觉得技术很强,看推荐是学习 C 语言,那么就开始学。 期间校内组织了装机考核(简单的线路的连接?)、中文打字速度比赛(60 字/分)。 当时根本不会盲打,拼音及其差,导致速度极慢,后面狠狠的练习了一波,学习了盲打,86 五笔(背诵字根)等。经过一段时间练习,英文打字极快,最快短文可以高达 500+ word/minute, 长文 400+ word/minute。(感觉当时还是比较有成就的?现在全忘了,不会打的字就拼音,五笔全凭感觉打。) 学校说什么大专升学要求什么计算机二级 Office 等级考试,学校就组织了培训,也是比较轻松的通过。(好像是优秀?具体需不需要也忘记了) 后面班主任说,多考一个什么计算机二级在大专里可以少修一门选修课程(后面知道根本没有的事)。因为对 C 语言还比较熟悉那就考二级 C 语言程序设计(感觉基本上去考的都是人家岗位需要?因为我做的很快,出去的很早,经大部分人感觉在看天书一样。后面也是拿到证书也是优秀?)。 某天突然想到未来干啥,怎么找到高薪工作。当时编程也是非常火爆,就学习这个。开始课后自己找资料学习,找方向,Java 找工作那肯定是火爆的,那就学呗。 时间一晃,又到了升学时间,步入大专。大一时搞完一个投票系统有三端,根据黑马视频学习完了黑马谷粒商场,学时觉得没啥意思了,工作写代码也就那样,都是对着文档写的 demo。(当时应该找实习,面向想工作学习) 后面就是自学搞个专升本,当时看高数很痛苦根本不懂,好在看了两遍视频稍微入门,前置知识点不是很多,毕竟初中也就数学比较自信点了,基本上班级前 4 吧。 英语学习基本展开不来,基础太差,根本不知道怎么学。(现在也是在学习英语,根据英语课本学,感觉看常见的英文视频,开字幕入了点门,不会像以前一样要转成中文了) 大专是一年半的课程,半年实习,导致面前课程比较多,当时老师上课也基本上不然你干别的,逃课也有比较严重的惩罚。(当时还是比较憨的,保守学生派)。 很快专升本考试开始,考完数学觉得好简单,中午吃饭疯狂吹逼,说检查了两遍不可能算错,就一道计算量太大的题不会算,其它的肯定没问题,预估 145。转眼下午英语考完,又觉得好简单,连我能看懂稳了,预估 110。 很快当天晚上对完数学答案,好傻逼啊算错了这么多,这么低级的错误,没救了。(其实现在看来,也是必然的,因为早在初中就经常出现这种情况。现在反思下,当时应该在整体试卷检查时,还是带着先入为主的重新过下题目,而不是重新思考下框架,在一步一步看计算过程) 成绩出来后,英语:89 不及格,数学:132?...

December 29, 2023 · 1 min · 王林

2023-12-17 周记 0x002

Life 今年冬天有点冷啊,慢慢恢复跑步吧,戒掉不良习惯。 技术太菜了,基础也不是很好,英语烂。 继续努力学习啊! 松懈了一断时间! 多写代码,读代码。 多总结、思考,必要记录笔记。 闲暇之余也要找点心情愉快的事情做,看看动漫、小说。 Rick and Morty 朋友的游戏 Share 研究下了迷宫算法,下面两个很好的资料。 https://professor-l.github.io/mazes/ https://weblog.jamisbuck.org/archives.html Randomized Prime Alogirthm 实现 用一个 2D array,最好是奇数长和宽,使用任意算法(DFS、Prime 等)遍历奇数坐标,过程中并把朝向的偶数位置设置成路。 public TETile[][] generate() { world[0][HEIGHT - 2] = Tileset.NOTHING; world[WIDTH - 1][1] = Tileset.NOTHING; List<Cell> V = new ArrayList<>(); Cell start = new Cell(0, 0); do { start.x = r.nextInt(HEIGHT); } while (start.x % 2 == 0); do { start.y = r.nextInt(WIDTH); } while (start.y % 2 == 0); V....

December 17, 2023 · 2 min · 韩立

CS国外课程学习

The best thing to do is have fun. CS 61B: Data Structures and Algorithms 运用数据结构和算法解决实际问题,三个千行项目实现。 -> CS 110L: Safety in Systems Programming 用 Rust 实现一个类似于 GDB 的 debugger/实现一个负载均衡器。 -> CS 144: Introduction to Computer Networking, 用 C++ 循序渐进地搭建出整个 TCP/IP 协议栈,实现 IP 路由以及 ARP 协议。 -> CMU 15-213: Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e) 系统入门课,课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,兼具深度和广度。 -> CSCI 0300: Fundamentals of Computer Systems 系统入门课,Project有 Snake、Dmalloc、Caching I/O、WeensyOS、Vunmo、Distributed Store。 涵盖了C、GDB、Assembly、OS、gRPC、Rust、KV等知识点。 -> From Nand to Tetris Building a Modern Computer From First Principles 基础课程,从硬件到软件,0到1的世界,用与非门构造出逻辑电路,Assembler,VM,PL,编译器,OS。 -> Programming Languages (A/B/C) by UW 多种编程范式入门,SML、Racket、Ruby。 -> CSE 251 Programming in C C语言入门课程。 -> MIT-Missing-Semester 工具课程,有很多需要熟练掌握的,如Vim、Git、Grep、tmux、Shell配置等。 CS 61A: - Structure and Interpretation of Computer Programs Python 版的 SICP,会随着实现Project如Ants、Scheme等,学习到有关函数式编程,数据抽象、面向对象等知识。 ->

December 12, 2023 · 1 min · 韩立

2022-10-9 周记 0x001

Algorithm LC 4. 寻找两个正序数组的中位数 分析: nums1: xxx X xxx nums2: yyy Y yyyyy 在两个数组里找第k/2个数 当X<Y时,说明第k个数一定不在数组nums1[start,k/2]里,因为nums1[start,k/2]有个k/2个数都小于Y,加上nums2[start,k/2 - 1]的个数才有k-1个数。 同理当Y<X时 细节: k分配不一定均匀,nums1数组元数可能不够k/2个 写个函数findKth(nums1, nums2, i, j, k) 确保nums1里元数个数 < nums2里元数个数 当左边数组遍历完了(i==nums1.size()) 返回nums2中的第k个数 当k==1时返回两个数组里的最小值 class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int n = nums1.size() + nums2.size(); if (n % 2 == 0) { return (findKth(nums1, nums2, 0, 0, n / 2) + findKth(nums1, nums2, 0, 0, n / 2 + 1)) / 2....

October 9, 2022 · 2 min · 韩立