如此轻松愉快的写文档或者说是html

早有耳闻python的效率,至少flask的一键输出我是看到的很多,怎么说,没想到程序员为了自己的效率竟然这么拼,当我看到一个mkdocs的库以后,我高潮了

这就是整个页面的代码,还有一个md文件。

怎么说,我要好好努力,争取以后能如此情所的写文大哥、、
顺带几个学习的网址
https://scikit-learn.org/stable/tutorial/basic/tutorial.html#machine-learning-the-problem-setting
http://python.jobbole.com/81730/
http://pandas.pydata.org/pandas-docs/stable/user_guide/cookbook.html

数学建模导论

时间性、随机性、优化性三个变量能很好的对应八卦限图。

数学建模应当掌握的十类算法
‍‍ 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算 法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)

2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要 处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)

3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题 属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现)

4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉 及到图论的问题可以用这些方法解决,需要认真准备)

5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计 中比较常用的方法,很多场合可以用到竞赛中)

6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是 用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实 现比较困难,需慎重使用)

7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛 题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好 使用一些高级语言作为编程工具)

8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只 认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非 常重要的)

9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常 用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调 用)

10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该 要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab 进行处理)

以上八大卦限分别对应10个命题

php 问题总结

脚本语言的通病

  • 弱类型语言
$a = 1;
$b = array();
$c = "test";

<?php
  $a = null; $b = false;  
  if($a == $b){  
      echo “a和b相等!”;  
  }else{  
      echo “a和b不相等!”;  
  }  
  $a = ''; $b = 0; 
  if($a == $b){  
      echo “a和b相等!”;  
  }else{  
      echo “a和b不相等!”;  
  }  
?>
  • require( )包含文件 可以文件注入
<form>Choose theme:
    <select name = theme>
        <option value = blue>Blue</option>
        <option value = green>Green</option>
        <option value = red>Red</option>
    </select>
    <input type = submit>
</form>
<?php
    if($theme) {
        require($theme.'.txt');
    }
?>
  • sql 注入 拼装字符串,addslashes/stripslashes防御
$sql =”select * from phpben where user_name=’admin’ and pwd =’123′”;  
$sql =”select * from phpben where user_name=’ ‘or’=’or” and pwd =” “;  
$sql =”select * from phpben where user_name=’ ‘or 1=’1′ and pwd =” “;
  • Xss攻击
<body>
<?php
$searchQuery = $_GET['q'];
/* some search magic here */
?>
<h1>You searched for: <?php echo $searchQuery; ?></h1>
<p>We found: Absolutely nothing because this is a demo</p>
</body>

直接打 search.php?q=%3Cscript%3Ealert(1)%3B%3C%2Fscript%3E

Reference

  1. https://www.kancloud.cn/chunyu/php_basic_knowledge/840701
  2. https://www.cnblogs.com/Renyi-Fan/p/10856650.html#_label0_1
  3. https://www.runoob.com/w3cnote/php-safe-collection.html
  4. https://www.oschina.net/translate/top-6-security-attacks-php?print

P5003 跳舞的线 - 乱拐弯

这道DP有点精妙~,大概最优子结构的转移函数写法长这样:

$$f_{max,i,j,0}=max(f_{max,i,j-1,0},f_{max,i,j-1,1}+1)$$

$$f_{max,i,j,1}=max(f_{max,i-1,j,0}+1,f_{max,i-1,j,1})$$

$$f_{min,i,j,0}=max(f_{min,i,j-1,0},f_{min,i,j-1,1}+1)$$

$$f_{min,i,j,1}=max(f_{min,i-1,j,0}+1,f_{min,i-1,j,1})$$

为了防止在起始点拐弯,最好的办法是-1越界。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define re register int 
#define LL long long 
using namespace std;
int n,m;
int f[1010][1010][2],g[1010][1010][2];
char a[1010][1010];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	cin>>a[i][j];
	memset(f,63,sizeof(f));
	if(a[1][1]=='#'){cout<<-1;return 0;}
	g[1][1][0]=g[1][1][1]=0;
	f[1][1][0]=f[1][1][1]=0;//0 left 1 down
	for(int i=1;i<=m;i++)g[0][i][1]=g[0][i][0]=-2147483647;
	for(int i=1;i<=n;i++)g[i][0][1]=g[i][0][0]=-2147483647;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	if(a[i][j]=='o')
	{
		if(i==1&&j==1)continue;
		g[i][j][1]=max(g[i-1][j][1],g[i][j-1][0]+1);
		f[i][j][1]=min(f[i-1][j][1],f[i][j-1][0]+1);
		g[i][j][0]=max(g[i-1][j][1]+1,g[i][j-1][0]);
		f[i][j][0]=min(f[i-1][j][1]+1,f[i][j-1][0]);
	}
	int Ansa=max(g[n][m][1],g[n][m][0]);
	int Ansb=min(f[n][m][1],f[n][m][0]);
	if(Ansb>n+m-2)cout<<-1<<endl;
	else cout<<Ansa-1<<" "<<Ansb<<endl;
	return 0;
}

linux编译出现 (.text+0x20):对‘main’未定义的引用 collect2: 错误:ld 返回 1 | (.text+0x20): undefined reference to `main' and undefined reference to function 解决方法

操作系统:ubuntu18.04 hpbook2000 gcc版本7.3.0

首先借鉴了国内网站,但大多说的是Makefile 很奇怪,我以为是源码编译的时候的问题但大家都是用”apt install gcc && apt install g++“来安装的,按说是不会出现这种错误的。我那时比较幼稚,就傻吼吼的等了一天源码编译gcc。

搞定了也没用,照样提示以上错误。那怎么办,听网上说只要把main 改成_start 或者不是main的函数名就ok了。又有人说最最主要的原因是Scrt1.o的main函数名定义在了使用它的前面所以报错。好吧,我就算知道也没法改.o文件怎么办。

网上又说有个可以痛改前非的办法,在gcc&g++加个-nostdlib或-nostartfile参数就可以。编译完说内核缺失,错的更离谱了。还有segmentation fault 搞笑。


最终解决办法

cd /usr/lib/ && cp crt1.o Scrt1.o

没有的话就编译一遍gcc就有了。g++和gcc是连带关系所以一并解决。

前天搞定的群辉usb3.0网线驱动

这个安装并不难,这只是保留下安装的链接而已

接下来比较硬核了,需要先给ubuntu18.04装个内核什么的,内核编译网上的3.10.105(这是DSM6.2的linux内核)一开始会提示架构不兼容。那就强制

sudo dpkg -i ***.deb

解压之后会发现/lib/modules会多一个linux-headers-'uname -r' 的文件夹,里面有build文件夹,那就搞定了。其实在/usr/src也会有一个,两个有链接和依赖关系,不管了。为了编译内核光有header是没有用的,去网上下一个linux3.x整合包管理就好,那还是不够,得要有synology 好吧其实关键词是xeonology(黑群辉)toolchain,这才是真正的开源内核,复制到/usr/src后就make整合包,make有个错误,搜错误信息csdn上有大神改源码就编译成功了。(所以压根就不是电脑不行,就是能力太差)不过这是一个兼容的常见问题,传参没传对,得自定义变量传参。

Makefile也是空白,Dockerfile更是,但其实差不多。

好了,搞定之后在asix或者a88178a-179a内编译

make --force --with-kernel=xxx

或者直接改makefile里面的KDIR就好。编译完之后就差拷贝到群辉目录下了

详见http://www.u-share.cn/forum.php?mod=viewthread&tid=9882

 

然而,若你不想这么烦,就直接拷贝吧https://xpenology.com/forum/topic/9508-driver-extension-jun-102bdsm61x-for-3615xs-3617xs-916/

连跳转都帮你写好了,重启都不怕,注意版本号哦!

另参考http://www.gebi1.com/thread-251273-1-1.html