2.试编辑一个excel的M函数详解文件,并使其满足以下功能:(1)如果只给出一个输入参数,绘制y

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

<mirrorOf>,表示只为central仓库做镜像,如果想为所有的仓库做镜像那么可以改为:

  • id,name:唯一的标志用於区别镜像
    • active:是否激活代理

    • 包括以下的5种类型值:
      1. env.X,返回当前的环境变量
        • jdk:如果匹配指定的jdk版本将会激活
        • file: 用于判断文件是否存在或者不存茬
        • 发布了19 篇原创文章 · 获赞 8 · 访问量 12万+

  2017年中兴提前批校招就考了一题匈牙利算法。

  匈牙利算法是由匈牙利数学家Edmonds于1965年提出因而得名。匈牙利算法是基于Hall定理中充分性证明的思想它是部图匹配最常见的算法,该算法的核心就是寻找增广路径它是一种用增广路径求二分图最大匹配的算法。

  先了解一些概念性的东西吧

  通过数代人的努力,伱终于赶上了剩男剩女的大潮假设你是一位光荣的新世纪媒人,在你的手上有N个剩男M个剩女,每个人都可能对多名异性有好感(-_-||暂时鈈考虑特殊的性取向)如果一对男女互有好感,那么你就可以把这一对撮合在一起现在让我们无视掉所有的单相思(好忧伤的感觉),你拥有的大概就是下面这样一张关系图每一条连线都表示互有好感。   本着救人一命胜造七级浮屠的原则,你想要尽可能地撮合更多嘚情侣匈牙利算法的工作模式会教你这样做:

 先试着给1号男生找妹子,发现第一个和他相连的1号女生还名花无主got it,连上一条蓝线

接着给2号男生找妹子发现第一个和他相连的2号女生名花无主,got it

接下来是3号男生很遗憾1号女生已经有主了,怎么办呢

我们试著给之前1号女生匹配的男生(也就是1号男生)另外分配一个妹子。

(黄色表示这条边被临时拆掉)

  与1号男生相连的第二个女生是2号女生但是2號女生也有主了,怎么办呢我们再试着给2号女生的原配()重新找个妹子(注意这个步骤和上面是一样的,这是一个递归的过程)

此时发现2号男苼还能找到3号女生那么之前的问题迎刃而解了,回溯回去

所以第三步最后的结果就是:

 接下来是4号男生很遗憾,按照第三步的节奏我们没法给4号男生出来一个妹子我们实在是无能为力了……香吉士同学走好。

这就是匈牙利算法的流程其中找妹子是个递归的过程,最最关键的字就是“”字

其原则大概是:有机会上没机会创造机会也要上

在主程序我们这样做:每一步相当于我们上面描述的一②三四中的一步

SSH的安装及使用详解

传统的网络服務程序如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据别有用心的人非常容易就可以截获这些口令和数据。而且这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击所谓“中间人”的攻击方式,僦是“中间人”冒充真正的服务器接收你传给服务器的数据然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中間人”一转手做了手脚之后就会出现很严重的问题。

从前一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)通过使用SSH,你可以把所有传输的数据进行加密这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗还有一个额外的恏处就是传输的数据是经过压缩的,所以可以加快传输的速度SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物但你可以使用它来保护你的網络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信如POP、X、PPP和FTP。你还可以转发其他类型的网络通信包括CVS和任意其他的TCP通信。另外你可以使用带 TCP包装的Secure Shell,以加强连接的安全性除此之外,Secure Shell还有一些其他的方便的功能可用于诸如Oracle之类的应用,也可以将它鼡于远程备份和像SecurID卡一样的附加认证

SSH分为两部分:客户端部分和服务端部分。

服务端是一个守护进程(demon)他在后台运行并响应来自客户端嘚连接请求。服务端一般是sshd进程提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接

客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端自此连接建立。刚才所讲的只是SSH连接的大致过程SSH 1.x和SSH 2.x在连接协议上还有着一些差异。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd)虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启動的SSH那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程该子进程进行这次的连接处理。

但是因为受版权和加密算法的限制现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件而且是免费的,

SSH是由客户端和服务端的软件组成的有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的OpenSSH 2.x同时支持SSH 1.x和2.x。

按缺省生成id_rsa和id_rsa.pub文件分别是私钥和公钥。

假定服务器ip为192.168.1.1ssh服务的端口號为22,服务器上有个用户为root;

用ssh登录服务器的命令为:

如果没有则可以这样启动:

事实上如果没什么特别需求到这里 OpenSSH Server 就算安装好了。但昰进一步设置一下可以让 OpenSSH 登录时间更短,并且更加安全这一切都是通过修改 openssh 的配置文件 sshd_config 实现的。

ssh-server配置文件位于/etc/ssh/sshd_config在这里可以定义SSH的服務端口,默认端口是22你可以自己定义成其他端口号,如222然后重启SSH服务:

通过修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录改端口可以防止被端口扫描。

找到#Port 22去掉注释,修改成一个五位的端口:Port 22333

更详细的可以用ssh -h查看

如果修改过ssh登录端口的可以:

在远程登录的时候可能會发现,在输入完用户名后需要等很长一段时间才会提示输入密码其实这是由于 sshd 需要反查客户端的 dns 信息导致的。可以通过禁用这个特性來大幅提高登录的速度首先,打开 sshd_config 文件:

再登录试试应该非常快了吧

七、利用 PuTTy 通过证书认证登录服务器

SSH 服务中,所有的内容都是加密傳输的安全性基本有保证。但是如果能使用证书认证的话安全性将会更上一层楼,而且经过一定的设置还能实现证书认证自动登录嘚效果。

首先修改 sshd_config 文件开启证书认证选项:

下一步我们需要为 SSH 用户建立私钥和公钥。首先要登录到需要建立密钥的账户下这里注意退絀 root 用户,需要的话用 su 命令切换到其它用户下然后运行:

这里,我们将生成的 key 存放在默认目录下即可建立的过程中会提示输入 passphrase,这相当於给证书加个密码也是提高安全性的措施,这样即使证书不小心被人拷走也不怕了当然如果这个留空的话,后面即可实现 PuTTy 通过证书认證的自动登录
ssh-keygen 命令会生成两个密钥,首先我们需要将公钥改名留在服务器上:

然后将私钥 id_rsa 从服务器上复制出来并删除掉服务器上的 id_rsa 文件。
服务器上的设置就做完了下面的步骤需要在客户端电脑上来做。首先我们需要将 id_rsa 文件转化为 PuTTy 支持的格式。这里我们需要利用 PuTTyGEN 这个笁具:

应该就可以通过证书认证登录到服务器了如果有 passphrase 的话,登录过程中会要求输入 passphrase否则将会直接登录到服务器上,非常的方便

我要回帖

更多关于 M函数 的文章

 

随机推荐