Linux 记录

查看硬盘信息
df -h  #-h是通过GB,MB来显示分区,当前挂载的卷。
lsblk    #可以显示未挂载的卷。
fdisk -l 查看磁盘信息

Ctrl+Z 将把任务暂时停止,放在后台。
fg 调出上一个停止的任务
bg 将后台暂停的任务,变为继续执行

PowerShell

PowerShell是Cmd的升级版本

知乎上有一篇文章限制限制CPU频率,以减少Surface Book2鼠标卡顿的情况..

powercfg -SETDCVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCFREQMAX 4000
powercfg -SETACVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCFREQMAX 4000

其他功能里比如之间进行数学运算。
tracert www.baidu.com 用来追踪路由信息

[C++]内存对齐

编译器会对内存自动进行对齐,以加快内存读取。

内存对齐主要遵循下面三个原则:

1.结构体变量的起始地址能够被其最宽的成员大小整除
2.结构体每个成员相对于起始地址的偏移能够被其自身大小整除,如果不能则在前一个成员后面补充字节
3.结构体总体大小能够被最宽的成员的大小整除,如不能则在后面补充字节

比如struct的字节大小并不是单纯按照所有元素的字节和相加。
可以用系统预编译来进行调节,#pragma pack(1)默认就是紧凑存放的。
linux下默认#pragma pack(4),#pragma pack()恢复缺省对齐

树莓派制作Aria2下载机记录

一开始没想到FAT32不支持4GB以上的文件,导致Aria2下载种子时建不了文件夹..立刻格了换NTFS.
不过linux只能只读NTFS,要用NTFS-3g
为硬盘挂载建立一个文件夹 sudo mkdir /mnt/DownloadDrive
然后sudo vim /etc/fstab 在最后一行添加如下内容
/dev/sda1 /mnt/DownloadDrive ntfs-3g defaults,noexec,umask=0000 0 0

之后安装samba建立局域网服务器,用Yaaw来做GUI的显示
安装aria2启动,( sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

 

不过一开始什么都不加,速度一直是0
因而conf里要加一下bt-tracker,听网上说还要找热门的种子先做种(反正我只能找到的热门种子都是Porn..
不过果然快了挺多..

不过对于迅雷的文件还是比不过啊,装了个Xware试试貌似也是不太稳定..

Web Note

console.log()
setTimeout
setInterval

var time = 0;
var timer=setInterval(() => {
    time+=3;
    console.log(time+" sec pass");
    if (time>10)
        clearInterval(timer);
}, 3000);

console.log(__dirname)
console.log(__filename)
回调函数

function CallFunc(Fun, name) {
    Fun(name);
}

var Func = function(name) {
    console.log('Bye '+ name);
}

CallFunc(Func,'Li');

arr=[‘A’,’B’,’C’];
arr.length=3

require(‘./*.js’) 当前目录引用

 

npm run serve

[Latex] 基础整理

打一波美赛复习一下Latex整理一下。

表格:

这个是一个Excel转Latex格式网站,适合excel整理好数据后导入。

下面式一般的三线表,一般用三线表多一点(好看。

\begin{table}[htbp]
  \centering
  \begin{tabular}{lll}
    \toprule
    A & B & C \\
    \midrule
    AA & BB & CC \\
    AAA & BBB & CCC \\
    \bottomrule
  \end{tabular} 
  \caption{Tabel}
  \label{Table}
\end{table}

图片

单张图片 [H]可以强制排版位置,一般用的是[htbp]
\caption 是下面说明
\label里是可以用于\ref的名字

\begin{figure}[H]
  \centering
  \includegraphics[width=0.7\linewidth]{Photo.png} 
  \caption{Photo} 
  \label{Photo} 
\end{figure}

两张图并列

\begin{figure}[htbp]
  \centering
  \subfigure[A]
        {
    \begin{minipage}[t]{0.5\linewidth}
      \centering
      \includegraphics[width=1in]{A.png}
    \end{minipage}
  }
  \subfigure[B]
        {
    \begin{minipage}[t]{0.5\linewidth}
      \centering
      \includegraphics[width=1in]{B.png}
    \end{minipage}
  }
  \centering
  \caption{Photos}
\end{figure}

四张图合一类型,其余同理

\begin{figure}[H]
  \centering
  \subfigure[A]
  {
    \includegraphics[width=7cm]{A.png}
    \label{A}
  }
  \quad
  \subfigure[B]
  {
    \includegraphics[width=7cm]{B.png}
    \label{B}
  }
  \quad
  \subfigure[C]
  {
    \includegraphics[width=7cm]{C.png}
    \label{C}
  }
  \quad
  \subfigure[D]
  {
    \includegraphics[width=7cm]{D.png}
    \label{D}
  }
  \caption{Photos}
\end{figure}

列表

enumerate可以标注序号的,\bfseries用加粗前面的序号,1.可以换成a.  , 1) , (i)
\quad 用于使整个item向右移

\begin{enumerate}[\quad \quad \bfseries 1.]
    \item ...
    \item ...
    \item ...
\end{enumerate}

itemize 没什么特别就是没有特别序号的enumerate,前面的标识可以换

慕课物理Latex答题模板

\documentclass[11pt, a4paper, UTF8]{article} 
\usepackage{geometry} 
\geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm} 
\usepackage{amsmath} 
\usepackage{amssymb} 
\usepackage{amsthm} 
\usepackage{enumerate}
\usepackage{graphicx}% Include figure files 
\usepackage{dcolumn}% Align table columns on decimal point 
\usepackage{bm}% bold math 
\usepackage{color} 
\usepackage{ctex} 
\newcommand\degree{^\circ}
\allowdisplaybreaks[3] 
\renewcommand{\theequation}{R\arabic{equation}}
\renewcommand{\baselinestretch}{2.0}

\begin{document}
\begin{figure}[h]
  \centering
  \includegraphics[width=0.7\linewidth]{Photo.jpg} 
  \label{Photo} 
\end{figure}

\begin{enumerate}[(1)]
    \item  ...
    \item  ...
    \item  ...

\end{enumerate}
\end{document}

 

杂项

\textbf 加粗 \emph 斜体 文中数学字母要加
一般就直接\section \subsection \subsubsection什么的
伪代码什么的太复杂了,用到的时候直接现学吧..

[Python] 关于输入输出的设置

print(*value, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
以上是缺省情况下print的设置
*value就是要输出的值用逗号分隔,类似于C语言的printf
“a=%d b=%d” % (a,b) 用a来替换%d的值,当然还支持%c,%s,%u,%o,%x,%f
sep就是每个value之间所用的间隔符,默认是空格,当然可以改为””即不空
end表示的是print最后的输出,默认是换行,可以改为空
file就是输出的重定向后的文件的位置比如f=open(“c.in”,”w”) file=f即可
flush因为输出的是后字符是存储在内存里的,flush=true即可以立刻输出到文件

 

a,b=map(int,input().split())
可以一次input得到多个数,input默认是str类型的所以转为int

[C++] 关于不同分布的随机数的生成

源于SJ加分题的发红包,想到如何生成制定分布的随机数。

当时就想到红包的值应该是以红包的平均值为峰值的正态的分布。(后来想想应该是偏态分布)这个分布的平均值是红包的平均值。实际上,那个函数的具体实现方法应该是也不是这么简单,我还没找到合适的方法。

前几天看机器学习的时候看到一个Gamma分布(看这个图形的样子的好像是偏态分布。就去学习了一番。

平均分布

过于简单,不再赘述

正态分布

最广为流传的方式应该就是Box-Muller的变换了。U_1, U_2是随机分布的[0~1]内的随机数

    \[U_1=Rand()\quad U_2=Rand()\]

    \[Z=R*\cos(\theta)\]

    \[R=\sqrt{-2*\ln(U_2)}\]

    \[\theta=2*\pi*U_1\]

这样的Z就是符合正态分布的随机数了。

Gamma分布

发现网上也没什么资料,不过C++11提供了很多现成的库来生成不同分布的随机数。这是C++PLUSPLUS的URL

有Gamma分布,Binomial分布,还有指数分布,大概有十多个。

// gamma_distribution
#include <iostream>
#include <random>

int main()
{
  const int nrolls=10000;  // number of experiments
  const int nstars=100;    // maximum number of stars to distribute

  std::default_random_engine generator;
  std::gamma_distribution<double> distribution(2.0,2.0);

  int p[10]={};

  for (int i=0; i<nrolls; ++i) {
    double number = distribution(generator);
    if (number<10) ++p[int(number)];
  }

  std::cout << "gamma_distribution (2.0,2.0):" << std::endl;

  for (int i=0; i<10; ++i) {
    std::cout << i << "-" << (i+1) << ": ";
    std::cout << std::string(p[i]*nstars/nrolls,'*') << std::endl;
  }

  return 0;
}

Possible output:

gamma_distribution (2.0,2.0):
0-1: *********
1-2: *****************
2-3: ******************
3-4: **************
4-5: ************
5-6: *********
6-7: *****
7-8: ****
8-9: ***
9-10: **

UPDATE(2019/7/31):
在知乎上看到的TESTU01,可以用来检验随机数生成的随机性(Random Number Generator, RNG),有官方文档用来证明验证的方式和验证函数的使用。

[SSR]使用Vultr来进行SSR的设置

高数考完了不知道干些什么,

先给出相关的网址:

 锐速破解版 用于加速

更换CentOS内核,以适应锐速支持的版本

购买Vultr

我购买的是洛杉矶的,日本的,硅谷的,最后试下来还是洛杉矶的好一点,日本的连SSH都连接不上去。在SecureCRT登陆即可。

安装ShadowSocks

下载

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh

更改ShadowSocks权限

chmod +x shadowsocks.sh

安装ShadowSocks

./shadowsocks.sh 2>&1 | tee shadowsocks.log

密码,端口号自己设定,Iphone 只支持cfb,因此最后一项选择aes-256-cfb, 即7

更换CentOS的内核,之后安装锐速。

使用SSTAP来在主机进行使用

感觉SSTAP的作者非常厉害啊,高中辍学回家,自学编程就搞出来个这样的软件,没想到因为硬盘损坏导致源码丢失,SSTAP无法继续维护了,叹叹。