位运算
位运算基础位运算基础可以见python基础知识
计算位运算计算时间为O(1)
移位运算
左移:
逻辑右移: 就是不考虑符号位,右移一位,左边补零即可
算术右移: 考虑符号位,右移一位,若符号位为1,就在左边补1;否则,就补0
n >> 1 = \lfloor \frac{n}{2.0} \rfloor
算术右移也可以进行有符号位的除法,右移n位就等于除2的n次方
🍆n>>1是向下取整,n/2是整数除法,是向0取整
1234567[(i // 2, i >> 1) for i in range(10)]# 输出[(0, 0), (0, 0), (1, 1), (1, 1), (2, 2), (2, 2), (3, 3), (3, 3), (4, 4), (4, 4)]
位运算小技巧
用异或实现配偶
123456789100, 12, 34, 56, 70 ^ 1 = 1, 1 ^ 1 = 02 ^ 1 = 3, 3 ^ 1 = 2...4 ^ 1 = 5, 5 ^ 1 = 4...
12345678[i ^ 1 for i in range ...
算法综述
算法
算法定义
算法是一系列解决问题的清晰指令
算法代表着用系统的方法描述解决问题的策略机制
也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题
不同的算法可能用不同的时间、空间或效率来完成同样的任务
算法的优劣可以用空间复杂度与时间复杂度来衡量
分类
有限的,确定性算法: 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止,这类算法得出的结果常取决于输入值
有限的,非确定算法: 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的
无限的算法: 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法
通常,无限算法的产生是由于未能确定的定义终止条件
算法复杂度
定义
算法复杂度,即算法在编写写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源
复杂度表示
我们记一个算法的复杂度为O(n),表示数据规模为n的情况下,算法使用的时间和空间资源
也可以用O(n ...
md数学公式和emoji表情
表情
⚓表情网站
⛪emoji表情官网
⛺timwhitlock表情
🌴常用表情
😀 😃 🥰 😍 😘
❤️ ✨ ⭐ ❗❓ ❕❔
✊ ✌️ ✋ ✋ ☝️ 👏 🤝
☀️ ☔ ☁️ ❄️ ⛄ ⚡ ⛅
⛪ ⛺ ⛲ ⛵ ⛵ ⚓ ✈️ ⛽ ⚠️ ♨️
1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 0️⃣
️⃣ ◀️ ⬇️ ▶️ ⬅️ ↙️ ↘️ ➡️ ⬆️ ↖️ ↗️⏬ ⏫ ⤵️ ⤴️ ↩️ ↪️ ↔️ ↕️ ⏪ ⏩ ℹ️ ️ ️ ️
♿ ㊙️ ㊗️ Ⓜ️ ⛔ ✳️ ❇️ ✴️
♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ⛎
❎ ️ ️ ️ ♻️ ©️ ®️ ™️ ❌ ❗ ‼️ ⁉️ ⭕ ✖️ ➕ ➖ ➗ ✔️
☑️ ➰ 〰️ 〽️ ▪️ ▫️ ◾ ◽ ◼️ ◻️ ⬛ ⬜ ✅ ⚫ ⚪
🌿 🍃 🌾 🌴 🌲 🥝 🥑 🍇 🍒 🍐 🌼 🍁 🥭 🌸 🍄
🐋 🐬 🐶 🐳 🐰 🦀
☝️ ⭐ 👉 👀
🌚 🌝 🧡ྀི 💛ྀི ❤️ྀི
❤️ 🌈 💯 🐾 🍭 🥂 🎼 🏀 👏
Latex公式
Ma ...
机器学习_线性代数与矩阵论(1)
写在前面,本系列主要是对下面这本书做的学习笔记
向量及其运算基本概念线性代数是多元函数微积分的基础
定义
向量(Vector)是具有大小和方向的量,是由多个数构成的一维数组,每个数称为向量的分量,向量分量的数量称为向量的维数
向量的表示
物理中的力、速度以及加速度是典型的向量,$n$维向量$x$有$n$个分量,可以写成行向量的形式$(x_1 \cdots x_n)$
通常将向量写成小写黑体斜体字符,如果写成列的形式则称为列向量,这些分量在列方向排列
\begin{bmatrix}
x_1 \\
\vdots \\
x_n
\end{bmatrix}这些向量的分量是实数,则成为实向量,如果是复数,则成为复向量,$n$维实向量的集合记为$\mathbb{R}^n$
与向量相对的是标量(Scalar),标量只有大小而无方向,物理中的时间、质量以及电流是典型的标量
在数学中通常把向量表示成列向量,而计算机中通常按行存储
二维平面内的一个向量,其在$x$轴方向和$y$轴方向的分量分别为$3$和$1$,写成行向量形式为$\left[ \begin{matrix} 3 & ...
docker基本使用
docker
docker官方文档
Docker 快速入门
Docker 安装包下载
docker是什么Docker 是一个应用打包、分发、部署的工具
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要
而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件
跟普通虚拟机的对比
特性
普通虚拟机
Docker
跨平台
通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行
支持的系统非常多,各类 windows 和 Linux 都支持
性能
性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了
性能好,只虚拟软件所需运行环境,最大化减少没用的配置
自动化
需要手动安装所有东西
一个命令就可以自动部署好所需环境
稳定性
稳定性不高,不同系统差异大
稳定性好,不同系统都一样部署方式
打包、分发、部署
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署 ...
厦门方特梦幻王国一日攻略
方特王国园区地图打卡厦门方特梦幻王国
夏天去的话带好遮阳伞、帽子、防晒霜等,防晒工作要做好,相机更是必不可少
水尽量少带。所有液体、食品(含600ml以上饮料)、易燃易爆品、违禁品、化学品禁止带入园。
园区的水较其他景区也不贵,是统一价,矿泉水8-10元,其他汽水果汁10元,几乎每一个场馆旁边都有水吧很方便的。
园区小火车是免费的,会一直在园区里转,走累了看到可以招手随停随上。
记得带:身份证,饮料,晚餐,带书包,耳机,充电宝,充电器
丛林的故事适宜人群:所有人;身高要求:无;项目特色:大型主题舞蹈秀
时间安排2022
21.30-22.30
打道回府
21.00-21.30
看烟花表演
19.30-21.00
吃饭时间(景区内物价比外面稍高,正餐人均30~40左右)+自由安排
ps餐饮:乐园内有非常多的餐饮小吃店,正餐像童话餐厅、熊记汉堡、欢乐餐厅、开心肉夹馍、小淮娘鸭血粉丝等等,口味众多丰俭由人;
除了正餐,更多的是小吃驿站,比如围炉锅盔、降龙爪爪、杯中的鱼、正新鸡排、金山客栈、老塞咖啡、快乐冰室等等,很容易管不住嘴,最后预算和卡路里双双超标
18 ...
阿里云部署
阿里云部署
阿里云部署笔记(centos版本),购买阿里云主机,开启安全组
云主机实例
配置安全组
环境安装安装git、jdk和nodejs
安装jdk
12# 安装jdkrpm -ivh jdk-8u241-linux-x64.rpm
配置jdk环境变量vi /etc/profile
1234export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64export JRE_HOME=/usr/java/jdk1.8.0_241-amd64/jreexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
ps: 若原先存在openjdk,需要先卸载
1234# 查看jdk列表rpm -qa|grep java# 卸载rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
安装和配置nodejs
1234567891 ...
github协作
github协作
GitHub 多人协作开发三种方式
Fork 方式
暂无
Organizations方式准备项目
新建组织(创建免费的即可,有每月免费2000分钟)
创建team(不建也是可以,建了容易管理)
添加team成员,在组织下选择team,给team拉队友,队友收到邮件后,同意了就可以加入
仓库转入(原来已有的仓库,进入仓库选择settings,下滑选Transfer)或在新建项目
为组织下的仓库添加合作者,配置权限
设置主分支保护,不让其他人直接push到主分支,打开仓库下的settings,选择branchs
添加Branch protection rules
开始协作
协作者在组织下找到对应的仓库,克隆仓库到本地
1git clone git@github.com:hycBook/bk_python.git
开始编写,完成后提交至新分支,一般命名为dev_xxx
新分支创建一次就可以,commit之后,再push到自己的dev_xxx分支
注意:在修改文件之前一般是先从主分支拉取最新内容,修改完成后尽早提交,较少冲突
...
Linux常用命令
linux常用指令
linux指令入门
文件类文件拷贝cp命令是Unix和Linux系统中用于复制文件和目录的命令
命令语法
1cp [选项] 源文件或目录[可多个] 目标文件或目录
命令选项
-a:归档模式,保留源文件或目录的所有属性,包括权限、所有者、时间戳等
-f:强制模式,不提示确认即覆盖目标文件或目录
-i:交互模式,覆盖目标文件或目录前询问是否确认
-r:递归模式,复制目录及其下所有文件和子目录
-v:详细模式,显示复制的每个文件或目录名称
本地拷贝cp 命令用于复制文件或目录,以下是一些 cp 命令的示例,涵盖了各种常见用法:
将文件从一个位置复制到另一个位置
1234567891011121314151617# 将file.txt复制到目标目录cp file.txt /path/to/destination/# 复制多个文件到目标目录cp file1.txt file2.txt /path/to/destination/# 保留源文件的元数据cp -a file.txt /path/to/destination/# 强制复制,覆盖目标文件,即覆盖目标文件( ...
gitbook博客搭建
gitbook
使用 Gitbook 打造你的电子书
gitbook官网
环境搭建
nodejs
官网下载,这里可以选择12.16.1版本,太新的版本后面可能会出现奇怪的问题,这是笔者使用的版本
执行以下命令安装gitbook命令
123456npm install -g gitbook-cli# 查看是否安装完成, 能正确显示版本号就行,这里推荐gitBook==3.2.3gitbook -VCLI version: 2.3.2GitBook version: 3.2.3
初始化电子书
初始化电子书
1gitbook init
这时候会生成下面两个文件README.md和SUMMARY.md
README.md 书籍的介绍写在这个文件里;SUMMARY.md书籍的目录结构在这里配置
安装插件
有配置book.json时,执行gitbook install会安装插件到node_modules目录
使用以下命令启动gitbook,打开http://localhost:4000就可以访问了,
1gitbook serve
重要文件
book.json,没有的话,自己新 ...