Giter Site home page Giter Site logo

blog's People

Contributors

triment avatar

Watchers

 avatar

blog's Issues

创意

方块 隐藏 血量 雷达

罗杰斯-人格发展取向教学设计

人本主义 教育目标是自我实现

前提:情感因素
教师担任促进者
非指导性教学

  • 表现自我
  • 认识自我
  • 改变自我
  • 实现自我

缺点:过于理想

计算机网络-笔记

专业单词

  • coaxial cable 同轴电缆
    流行的分组交换机
  • Router
  • link-layer switch
    常识 思科是全球最主要是用的设备

名词解释

  • ISP (Internet Service Providers)
  • TCP (Transmission Control Protocol)
  • IP ( Internet Protocol)
  • 套接字 (定义端程序数据交付方式)
  • 协议 (两个及以上的通信实体交换报文的格式和顺序以及动作

物理传输媒体

  • 导引式媒体 (电波沿固体传送)
  • 非导引型媒体

latex 自动机画法

\documentclass{ctexbeamer}

\usepackage{tikz}
\usetikzlibrary{automata,arrows}

...
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2cm,
      thick,base node/.style={circle,draw,minimum size=16pt}, real node/.style={double,circle,draw,minimum size=35pt}]
    \node[initial,initial text={}, accepting, state] (1) {$\epsilon$};
    \node[state](2)[right of=1 ]{$51$}[above];

    \path[]
    (1) edge [loop below]node {$0,101$} (1)
    (1) edge node {$51$} (2)
        edge [bend right] node {$\sigma$} (2)
    (2) edge [loop above]node {$0$} (2);
    
  \end{tikzpicture}

curl post用法

curl -H "Content-Type: application/json" -X POST -d '{ "data": "hello" }' http://localhost/blog/create

编译器设计 1

编译器基本原则

  • 确保被编译程序的语义
  • 编译使得程序更好使用

【IR】:中间表示,编译过程可能会有多种IR,即编译可能有会经过多次,每次都有中间表示层

后端默认IR是正确的,即无语法和语义错误

IR可以反复迭代优化,甚至 可以在A阶段优化时保留一些信息(比如让IR携带这种信息),等到B阶段优化时进行使用,以此提高转换质量

词法分析

生成单词流,(P,S)形式,P是词条的性质,s是词条字符串,原文说单词实际拼写可能保存在散列表中,(p,s)可以用一个整数索引表示,可以简化相等性测试,第二章才会揭开面纱

语法分析

检查单词流的顺序,并做模式匹配

中间优化

IR上下文优化

minted 设置

sudo pip3 install Pygments
\begin{minted}[mathescape]{python} # Returns $\sum_{i=1}^{n}i$
def sum_from_one_to(n):
    r = range(1, n + 1)
return sum(r) \end{minted}

sublime text 4 c语言设置

安装esayclangcomplete

配置

{  
    "common_flags" : [
    // some example includes
    //"-I/usr/include",
    "-I$project_base_path",
    // this is needed to include the correct headers for clang
    "-I/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0",
    "-I/Library/Developer/CommandLineTools/usr/include/c++/v1",   
    ],
    "lang_flags": {
      "C": ["-std=c11"],
      "CPP": ["-std=c++11"],
      "OBJECTIVE_C": ["-std=c11"],
      "OBJECTIVE_CPP": ["-std=c++11"],
    },
    "hide_default_completions": true,
    "show_type_info": true,
    "show_type_body" : true,
    "show_errors": true,
    "autocomplete_includes": true,
}

bat使用技巧

@echo off
cls
@REM 保存当前路径
set currentpath=%~dp0
echo 检查360...
for /f  "tokens=1,2,3 delims= " %%a in ('reg query HKEY_CURRENT_USER\Software\360safe /v EnableUE') do (
    set en=%%a
)
if %en%==EnableUE (
    goto del360
) else (
    goto end
)

:del360
cls
echo 你的电脑安装了360,需要卸载,马上启动卸载程序
echo 点击 “允许程序所有操作”,点击错误将导致安装失败
for /f  "tokens=1,2,3 delims=:" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\360safe.exe" /v "Path"') do (
    set path=%%i
    set path2=%%j
)
cd %path:~-1%:%path2%
start /wait uninst.exe
goto install

:install
cls
cd %currentpath%
for /f "delims=" %%i in ('ver') do set str=%%i
set version=%str:~22,2%
echo 欢迎使用银河安装脚本1.0.0
echo 开始安装银河,不要关闭此窗口
if %version%==6. (
    echo 开始安装.net,遇到弹窗请点击是
    start /wait .\.net4.5.2.exe
    echo 开始安装c++库,勾选同意许可条款,点击安装,遇到弹窗请点击是
    start /wait .\vc2013redist_x86.exe
)
echo 安装银河,一直下一步,遇到弹窗请点击是
start /wait .\Ymdd.setup.msi
exit

:end
pause

sublime text 安装 插件配置golang

安装golang后安装gopls

export GOPROXY=https://goproxy.io,direct
go install golang.org/x/tools/gopls@latest

sublime text安装插件

sublimecodeintel
LSP
golangbuild/EasyClangComplete
Terminus
设置keybinding

[
	{
		"keys": ["shift+command+t"],
		"command": "terminus_open",
		"args": {
			"cwd": "${file_path:${folder}}"
		}
	},
	{
		"keys": ["alt+tab"],
		"command": "toggle_terminus_panel",
	}
]

link

斯金纳-行为控制

理论: 操作反应,积极强化
关键因素:程序教材编制,教学机器使用
原则:

  • 积极反应
  • 小步子原则
  • 及时强化
  • 自定步调(个别化)
  • 低错误原则(减少厌恶情绪)

x86路由刷写

physdiskwrite.exe -u openwrt-x86-64-generic-squashfs-combined-efi.img

latex 开局

\documentclass{ctexart}%ctexbook,ctexrep
\title{\zihao{3} \LaTeX{}章节标题设置}
\author{\zihao{-4} WSS}
\date{\zihao{-4} \today}
\pagestyle{plain}%页眉为空,页脚为页码
%=================设置章节标题格式==================
\ctexset{
	section={
		%format用于设置章节标题全局格式,作用域为标题和编号
		%字号为小三,字体为黑体,左对齐
		%+号表示在原有格式下附加格式命令
		format+ = \zihao{-3} \heiti \raggedright,
		%name用于设置章节编号前后的词语
		%前、后词语用英文状态下,分开
		%如果没有前或后词语可以不填
		name = {,、},
		%number用于设置章节编号数字输出格式
		%输出section编号为中文
		number = \chinese{section},
		%beforeskip用于设置章节标题前的垂直间距
		%ex为当前字号下字母x的高度
		%基础高度为1.0ex,可以伸展到1.2ex,也可以收缩到0.8ex
		beforeskip = 1.0ex plus 0.2ex minus .2ex,
		%afterskip用于设置章节标题后的垂直间距
		afterskip = 1.0ex plus 0.2ex minus .2ex,
		%aftername用于控制编号和标题之间的格式
		%\hspace用于增加水平间距
		aftername = \hspace{0pt}
	},
	subsection={
		format+ = \zihao{4} \kaishu \raggedright,
		%仅输出subsection编号且为中文
		number = \chinese{subsection},
		name = {(,)},
		beforeskip = 1.0ex plus 0.2ex minus .2ex,
		afterskip = 1.0ex plus 0.2ex minus .2ex,
		aftername = \hspace{0pt}
	},
	subsubsection={
		%设置对齐方式为居中对齐
		format+ = \zihao{-4} \fangsong \centering,
		%仅输出subsubsection编号,格式为阿拉伯数字,打字机字体
		number = \ttfamily\arabic{subsubsection},
		name = {,.},
		beforeskip = 1.0ex plus 0.2ex minus .2ex,
		afterskip = 1.0ex plus 0.2ex minus .2ex,
		aftername = \hspace{0pt}
	}
}

\begin{document}
	\maketitle
	%测试手动设置章节标题格式
	\section{引言}
	\centering 你好,\LaTeX{}!
	\section{实验方法}
	\section{实验结果}
	\subsection{数据}
	\subsection{图表}
	\subsubsection{实验条件}
	\subsubsection{实验过程}
	\subsection{结果分析}
	\section{结论}
	\section{致谢}
\end{document}

webrtc基本流程

A端
创建peer链接

const lc = new RTCPeerConnection()

创建channel

const dataChannel = lc.createDataChannel("channel")

监听数据访问

dataChannel.onmessage = e => console.log("get message" + e.data)

监听channel打通

dataChannel.onopen = e =>  console.log("Connection opened")

监听ice变化并打印sdp

lc.onicecandidate = e => console.log("New ice candidate! new sdp " + JSON.stringify(lc.localDescription))

设置本地offer,对方的RTCPeerConnection需要此处得到的offer

lc.createOffer().then( o => lc.setLocalDescription(o) )

B端

const offer = <上面的offer(对端)>
const rc = new RTCPeerConnection()
rc.onicecandidate = e => console.log("New ice candidate! new sdp " + JSON.stringify(rc.localDescription))
rc.ondatachannel = e => {
    rc.dataChannel = e.channel;
    rc.dataChannel.onmessage = e => console.log("new message: "+ e.data);
    rc.dataChannel.onopen = e => console.log("channel openning!");
}
rc.setRemoteDescription(offer).then(a => console.log("Offer set success!"))
rc.createAnswer().then( a => rc.setLocalDescription(a).then(ans => console.log("ans created!")) )//设置本地answer(等同对端的offer),创建answer会生成sdp,把此处的sdp发送给对端

A端

const answer = <上面的answer>
dataChannel.send("ok")//发送消息

编译器设计 2 词法分析

  • 表驱动词法分析器
  • 直接编码的词法分析器
  • 手工编码

大部分商业编译器都是手工编写的词法分析器,因为性能更强

有限自动机(FA),由5元组构成 $\left( S, \sum , \sigma , S_0, S_A \right)$

  • $S$ 是自动机中所有状态集合,包括错误状态 $S_e$
  • $\sum$ 是识别器使用的字母表,状态通过读取字母进行转换状态,通常是自动机途中状态和状态间边上的标签
  • $\sigma \left(s,c\right)$ 表示状态s遇到c字母后到达下一状态的映射关系
  • $S_A$ 是终态,accepted的意思,为图的叶节点

FA五元组

)

正则表达式

正则语言由三个基本要素构成

  • 选择, 记作 $R \mid S$,形式定义为 $\{x| x \in R \cap x \in S\}$
  • 连接, $RS$,形式定义为 $\{xy| x \in R \cup y \in S\}$
  • 克林闭包, $R^*$ , $R$ 循环多次(包括0次, $R^{+}$ 表示正闭包,匹配1+次)

正则的运算顺序
括号、求补、闭包、连接、选择
求补是对于一个集合 $\sum$ 和一个元素而言的,求补即是 $\sum-c$,求补的符号为 ^

/[^869]+/.test("968")//false,至少有一个不满足869的集合

词法分析器可以限制变量的长度或者产生类似寄存器之类的限制,通过前端限制寄存器的数量
[0...9]表示(0|1|2|3|4|5|6|7|8|9)

正则语言(RE)和自动机(FA)暗含等价,在正则中的运算也可以放到FA下面

PS:完全FA是包含错误状态的FA,词法分析器中利用错误叶节点向用户报错提供信息

练习:PL/I程序字符串识别
"(^"| "")*"

/"([^"]|"")+"/.test(`"hello "" hello"`)

(非确定/确定)有限自动机

非确定自动机NFA:对于一个输入字符有多种可能得转移,有可能有多个初态
NFA
DFA与NFA是等价的
DFA是NFA的一个特例(类似单选题也是一种多选题)

对NFA进行“并行”计算可以得到对应的多个DFA,也就是说与NFA等价的DFA可能包含指数倍的数量,即会占用更大的空间,而时间依旧是一样的,因为始终读取一个字符就转换下一个状态。

从NFA到DFA:Thompson构造法转换RE到NFA
REtoNFA

再从NFA通过子集构造法转换成DFA
示例NFA
截屏2022-09-14 14 42 34

  • 首先求状态集S的 $\epsilon$-closure闭包 $\epsilon-closure\left(S\right)$,其中 $S\in 2^N$$2^N$ 是NFA的状态集的子集。 PS:实际上对应的状态图行为是将 $S$中所有可以运算 $\epsilon^*$ 得到的状态集合求出来,可以认为他们是NFA的初始状态集,比如以上面的NFA为例,集合 $\{S_0,S_1,S_8\}$$\epsilon$-closure闭包是 $\{S_0,S_1,S_8, S_6,S_9,S_2,S_4\}$
  • 然后是弧转换,这里令 $S = \{S_2,S_4\}$ 则b弧转换 $move\left(S,b\right) = \{S_3\}$
  • 最后是将 $\epsilon$-closure闭包作用于弧转换的结果,结果 $\epsilon -closure \left( move \left(S\right)\right) = \{S_2,S_4,S_7,S_6,S_4,S_9\}$ ,有了这几个运算就可以将NFA通过子集构造法转换为DFA
    复杂的在于状态集转换 $N \rightarrow D$ 以及转移函数的推导 $\delta_N\rightarrow\delta_D$
    求状态集D的算法

子集构造法

NFA自动机确定的最小化

前置概念

  • 多余状态,指初始状态无法到达的状态集合,针对单个初始状态而言
  • 死状态,指的是无法进入终态的状态
    以上两种状态称为无关状态,可以直接删除
  • 等价状态,多个路径相同(路径上状态-弧标签构成的元组排列顺序相同),称作等价
  • 可区别状态,两个状态读入同一个字符转移到不同状态中或者一个为终态一个为非终态,这两种情况都是可区别状态

最小化步骤

  • 将状态分组

随感

大部分人没有聪明不聪明,能干不能干,有的只是立场不同

bat 获取路径

@echo off
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
echo 目录中有空格也可以加入""避免找不到路径
echo 当前盘符:"%~d0"
echo 当前盘符和路径:"%~dp0"
echo 当前批处理全路径:"%~f0"
echo 当前盘符和路径的短文件名格式:"%~sdp0"
echo 当前CMD默认目录:"%cd%"
pause
set path=%~dp0

bbr开启

echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf
保存生效

sysctl -p
执行

sysctl net.ipv4.tcp_available_congestion_control
如果结果是这样

sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
就开启了。 执行 lsmod | grep bbr ,以检测 BBR 是否开启。

【flutter】卡Running Gradle task 'assembleDebug'

进入项目的目录android
修改build.gradle

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        // google()
        // mavenCentral()
         maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

第二处

allprojects {
    repositories {
        // google()
        // mavenCentral()
         maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
    }
}

下载gradle的zip放入android/gradle/gradle.zip
gradle-wrapper.properties 文件中,将 distributionUrl 设为本地路径
例如文件名android/gradle/gradle.zip

distributionUrl=gradle.zip

运行

flutter clean
flutter run

心理卫生与心理辅导

第一章

心理卫生的含义

  1. 是一门学科,重点研究和预防各种类型的一般心理问题,维护和增进心理健康
  2. 是一项工作,
  3. 是一种心理状态
    基本内容
  4. 对象:研究心理健康的人和健康不良的人,和对”心理“的研究
  5. 基本任务:预防和矫治心理问题和精神障碍;维护和增进健康水平
    保持心理健康的原则(选择题)
  6. 自我意识良好
  7. 社会功能良好
  8. 人际关系良好

心理辅导的含义(简答)

  1. 是一种以心理学理论为基础,以增进个人或团体的心理健康、福祉、职业等的发展为目的的专业性助人活动
    基本内容
  2. 对象:健康和不健康的群体
  3. 基本任务:帮助被辅导者解决他们心理上所面临的困难,陪伴成长、提供支持增强其心理能量
    特征
  4. 专业性强
  5. 建立在人际交往基础上
  6. 是一项助人自助的工作
  7. 以语言为基本工作方式(谈话为主,其他措施为辅)
    原则
  8. 保密原则
  9. 保密例外原则(性侵害、自伤、反社会倾向、致命传染病、法律规定)
  10. 自愿原则(童蒙求我,使童蒙求我)
  11. 发展性原则
  12. 系统性原则(计划,组织)
  13. 整体性(家庭、学校因素)
    辅导模式
  14. 医学治疗
  15. 咨询辅导
  16. 社会影响模式
    辅导途径
  17. 个体一对一(精神分析法)
  18. 团体:同类性质问题群体
  19. 家庭心理辅导
  20. 建立广泛的心理辅导网络:各种社会资源、社区、专业机构

js事件触发

// const event = new InputEvent('input', {
// view: window,
// bubbles: true,
// cancelable: true
// })
// console.log(bodyRef.current.dispatchEvent(event))

python telnet连接

from cmath import exp
from telnetlib import Telnet


import socket

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(2)


try:
    sk.connect(('10.156.0.254', 23))
    print("ok")
except Exception:
    print("server port not connect!")
sk.close()
# tn = Telnet('10.156.0.254')

# tn.read_until(b'Username:')
# tn.write(b'admin\n')
# tn.read_until(b'Password:')
# tn.write(b'admin@cd123\n')
# tn.read_until(b'[Y/N]')
# tn.write(b'N\n')
# tn.read_until(b'>')
# tn.write(b'sys\n')
# tn.read_until(b']')
# tn.write(b'int g0/0/28\n')
# tn.read_until(b'28]')
# tn.write(b'undo shutdown\n')

# print(str(tn.read_until(b']')))
# tn.close()

7zip自解压自运行软件打包

1、准备好软件(多个exe,或者带有dll的包)
2、7zip添加7z的压缩文件xx.7z
3、下载 7-Zip 9.20(2010-11-18,Windows)版本,提取其中的7zS.sfx放到上面xx.7z一起
4、编写config.txt和xx.7z在一起

;!@Install@!UTF-8!
Title="银河安装程序"
BeginPrompt="安全软件可能导致安装不成功,请确认已卸载360等软件!"
RunProgram="start.bat"
;!@InstallEnd@!

5、打包copy /b 7zS.sfx + config.txt + xx.7z Installer.exe

eve 与华为镜像安装指北

安装ubuntu server 启用ssh服务
安装后设置root密码passwd root
然后设置IP网关之类的,nano /etc/network/interfaces
然后使用脚本https://www.eve-ng.net/repo/install-eve.sh安装
重启后使用root登陆
然后设置eve,注意这里设置的ip会改变主机的ip
重启后即可使用
将 镜像的yaml描述文件上传至/opt/unetlab/html/templates/intel
将镜像的文件连同文件夹放入/opt/unetlab/addons/qemu
将镜像的icon放入/opt/unetlab/html/images/icons
最后修复权限/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

教学笔记

我们在学习知识时,由于懒惰或者精力有限,有很多问题方向没能去思考他,但如果作为老师去教授则需要深入每个问题,知其来龙去脉,以便教授时解释清楚,在这个过程中能够得到思维的锻炼,广度和各个问题方向的惯用模式也能抽象出来,通过大量的涉猎来获得各行各业各个方向的知识和思维方式,从而一同百通,容易产生跨学科的研究或者他山之石可以攻玉的情况。学校之所以是孕育学术的摇篮,于此有深厚的渊源,除了学校就是各个专业方向的顶尖研究人物对行业的推进,从这个角度看,教学实践密集的地方也不是唯一的推动文明发展的摇篮,当人类处在文明的边缘时,本着基本的探索精神,会砥砺向前,扩展文明版图。这两种方式在个人看来后者更厉害,更可贵,更难,但是抛开剂量谈牛逼是不行的。

【ubuntu】命令行代理

本地搭建http文件服务
放入v2ray的安装包和dat文件
使用v2ray安装脚本

https://github.com/v2fly/fhs-install-v2ray

更改install-release.sh 280行

download_v2ray() {
  DOWNLOAD_LINK="https://本地http服务地址/v2ray-linux-下载版本.zip"
  echo "Downloading V2Ray archive: $DOWNLOAD_LINK"

运行命令

sudo ./install-release.sh

编辑好配置运行

service v2ray start

配置客户端

sudo apt install -y proxychains

修改配置文件vi /etc/proxychains.conf

socks4  127.0.0.1 10808
socks5 127.0.0.1 10808

python 依赖

pip freeze > requirements.txt
pip install -r requirements.txt

docker 更换源 mac

{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}

golang 工具手动下载

go get -v github.com/go-delve/delve/cmd/dlv
go get -v github.com/josharian/impl
go get -v honnef.co/go/tools/cmd/staticcheck
go get -v github.com/ramya-rao-a/go-outline
go get -v github.com/fatih/gomodifytags
go get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs
go get -v github.com/cweill/gotests/gotests
go get -v golang.org/x/tools/gopls

ubuntu更改ip、更换源

sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
设置DNS 修改/etc/resolv.conf
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vim /etc/apt/sources.list

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse

【GSI刷机】

adb抓开机日志

adb logcat -v time -b main -b events -b system

arp中间人打开路由转发

被攻击者发过来的包被攻击者转发即可,操作系统收到不是自己的包的时候会帮忙中转

macos设置

sysctl -w net.ip.forwarding=1

/etc/sysctl.conf

net.ip.forwarding=1

修改好后需要生效

sysctl -p

vscode latex配置

插件LaTeX WorkShop

"latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-shell-escape",
                "-synctex=1",
                "-interaction=nonstopmode"
            ]
        }]

rust-windows-gnu编译配置

cargo.toml设置编译目标为gnu

[build]
target="x86_64-pc-windows-gnu"

cmd

rustc --print target-list

参考

1、安装msys2
msys2
2、进入msys2

pacman -S mingw-w64-x86_64-gcc

latex sublime

	"builder_settings" : {

		// General settings:
		// See README or third-party documentation
		"options": ["--shell-escape", "-8bit"],
		// (built-ins): true shows the log of each command in the output panel
		"display_log" : false,

		// Platform-specific settings:
		"osx" : {
			// See README or third-party documentation
		},

		"windows" : {
			// See README or third-party documentation
		},

		"linux" : {
			// See README or third-party documentation
		}
	},

golang光速入门

一类型

1、数组

定义方式

var a [3]int
var a = [...]int{1,2,3,}
var a =[...]int{2:1,1:2}
var a = [...]int{1,2,3,5:8,6}

注意golang的数组是表示整个数组,数组的赋值会复制整个数组,精良使用数组引用&a

b:=&a
b[0],b[1],b[2]

访问方式相同
len()访问数组长度cap()访问数组的容量,实际上对数组来说,这两个函数的结果是一样的
for range访问数组可能性能会好一些,因为不用判断越界

2、字符串
go语言底层定义在reflect.StringHeader

type StringHeader struct {
Data uintptr//底层字节数组
Len int//长度
}
3切片
定义
```go
type SliceHeader struct {
Data uintptr
Len int
Cap int
}

只比数组多一个Cap

var a []int
a = append(a, []int{1,2,3,4}...)//追加一个切片,需要解包
a = append([]int{8,9,0}..., a)//在前面增加,一般都会导致内存重新分配,所以开销较大
a = append(a[:i], append([]int{1,5,6}..., a[i:]...)...)//在第i个位置前插入节点

高性能插入写法

a = append(a, 0)//新加一个空间
copy(a[i+1:], a[i:])//后移动一位
a[i] = x

切片操作本身返回值是一个指针

模拟电路笔记

本证半导体(intrinsic material)

  • 完全纯净的晶体
  • 本征激发:电子挣脱原子核束缚
  • 复合:电子填入空穴
  • 激发和复合在一定温度下达到动态平衡
  • 电流负:由自由电子做定向运动
  • 电流正:由复合产生的空穴相对运动
  • 自由电子和空穴统称载流子,而导体只有自由电子一种载流子,这是最关键的区别
  • 本征半导体载流子浓度低,导电性能差
  • 温度越高,载流子浓度越高

杂志半导体 (extrinsic material)

  • 在本征半导体中残渣一些其他元素,如四价元素中掺杂三价或五价元素
  • 四价硅(Si)中掺杂五价磷(P)原子,然后多出一个自由电子,多出自由电子载流子这种半导体称作电子半导体或N型半导体
  • 实际上,上面这种N型半导体依旧有空穴载流子,只要是半导体就会有空穴和自由电子,在N型半导体中,自由电子被称作多子

教学目标的功能

教学目标的功能

  • 为内容和教学方法提供依据
  • 为教学组织提供依据
  • 为教学实施提供依据
  • 为教学评价提供依据

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.