令h(0)=1,h(1)=1,catalan数满足递推式:
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2)
从第一项开始,分别是第一个入栈元素在第i+1个出栈的情况数
例如:
h(2)=h(0)h(1)+h(1)h(0)=11+11=2
h(3)=h(0)h(2)+h(1)h(1)+h(2)h(0)=12+11+21=5
递推关系的解为:
h(n)=C(2n,n)/(n+1) (n=0,1,2,…)
递推关系的另类解为:
h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,…)
中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/ 清华源
清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --set show_channel_urls true 设置搜索时显示通道地址
conda config --set show_channel_urls true conda upgrade --all conda config --remove-key channels conda config --show-sources conda config --set show_channel_urls: true # 先更新conda到最新版 conda update conda # 再更新anaconda到最新版 conda update anaconda # 这时候base(基础)环境就会被升级到最新版 # 只升级python conda update python # base升级完以后,再升级其他环境: # 1先切换到其他环境 activate 环境名 # 2然后执行下面的命令,就可以把创建的环境升级到最新版了 conda update --all conda clean -i # 如果要设置搜索时显示通道地址,在prompt中执行下面的命令 conda config --set show_channel_urls yes # 恢复默认源 conda config --remove-key channels
目前超分在着重解决真实图像SR的问题。本文介绍的多种退化模型(Multiple Degradations)也是为了解决该问题。现实场景中的图像退化是更为复杂的,可能同时包含分辨率、噪声、模糊等问题。该类方法认为:
真实数据的退化更为复杂,导致现有基于bicubic退化模型在真实数据上效果很差,所以可以通过考虑更复杂的退化,使模型能够应对更复杂的输入,以求在真实数据上获得更好地重建结果。 因此,该类方法主要从以下两方面入手:
设计更复杂的退化模型,让数据更接近于现实数据。设计更复杂的(鲁棒性更强的)重建模型,可以更好地应对复杂的输入。 一、Learning a Single Convolutional Super-Resolution Network for Multiple Degradations (CVPR-2018) 1、出发点 现有的基于CNN的SISR方法大多假设低分辨率(LR)图像是从高分辨率(HR)图像中进行双三次降采样的得到,但真实的LR图像的退化更为复杂,不可避免地会导致性能较差。现有模型可扩展性差,很难利用单个模型应对多种退化。 2、主要工作 提出能够应对多种退化的SR模型。提出了一种新的维度延伸策略(dimensionality stretching strategy)来解决LR输入图像、模糊核和噪声水平之间的维度不匹配问题。本文方法在合成数据上获得了很好的结果,同时在真实的LR数据上也获得了更好地结果。 3、Degradation Model x为HR,y为退化得到的LR。
4、Dimensionality Stretching 4、网络结构 二、Blind Super-Resolution With Iterative Kernel Correction (CVPR-2019) 1、出发点 上述方法SRMD实际上是非盲的,需要预先知道LR图像的模糊核,在现实场景中仍然是受限的。传统的基于优化的方法,通过优化目标函数,利用自然图像的自相似性来预测模糊核,但是这类方法的预测容易受到输入噪声的影响,导致核估计不准确。本文方法源于对内核不匹配时引起的重建问题的观察。具体来说,如果输入的内核比真实的内核平滑,那么输出的图像将是模糊/过平滑的。反之,如果输入核比正确的核更尖锐,则结果会过度成形,产生明显的振铃效应。 2、主要工作 提出基于预测校正原理的盲迭代核校正(IKC)方法,为模糊核的校正提供指导;提出了一种直观有效的深度学习框架用于单图像超分辨率模糊核估计。提出了一种新的基于空间特征变换层(SFT)的多模糊核的非盲SR网络并证明了所提出的非盲SR网络的由于SRMD。 3、网络结构 网络P:由LR图像估计其模糊核
SFTMD:利用当前预测的模糊核h和LR图像预测HR图像
网络C:由预测的模糊核和预测的HR图像估计模糊核的偏差(为什么能实现这个功能还没想通)
4、迭代校正模糊核流程 三、Deep Plug-and-Play Super-Resolution for Arbitrary Blur Kernels (CVPR-2019) 1、出发点: 首先,它们在模糊核估计方面存在困难;其次,它们通常是为高斯模糊核而设计的,因此不能有效地处理严重模糊的LR图像。 2、主要工作 提出了一种比双三次退化模型更符合实际的SISR退化模型。它考虑任意模糊核,并允许使用现有的去模糊方法进行模糊核估计。将基于数学优化的方法与CNN方法结合,提出了一种深度即插即用超分辨率框架。其中利用数学优化方法去模糊、利用CNN完成去噪和超分,概况就爱可以很好地与现有CNN的SR方法相结合。 3、方法介绍 1、退化模型
2、目标函数
3、将约束整合:
4、变量分离、迭代优化:
5、优化(7),利用FFT求解Z:
6、优化(8),分析公式(8),公式(8)实际上是要从LR图像(bicubic降采样+噪声)中恢复出HR图像,作者在此利用CNN来解决这个问题,这也是本文的一个亮点。基于此,将公式(8)转化为以下问题:
8、总结:
公式(7)解决了模糊问题,它将当前的估计拉到不那么模糊。公式(8)映射较少模糊的图像到一个更干净的HR图像。经过多次交替迭代(7)和(8),最终重建的HR图像没有模糊和噪声。
四、Deep Unfolding Network for Image Super-Resolution (CVPR2020) 五、Flow-based Kernel Prior with Application to Blind Super-Resolution(CVPR2021) 六、Unsupervised Degradation Representation Learning for Blind Super-Resolution (CVPR2021) 1、出发点 现有的方法都是依靠估计退化(模糊核估计)来重建SR图像。然而,这种方法通常是耗时的,并可能导致SR失效,因为估计误差可能大。 2、主要工作 本文提出了一种无监督退化表示学习(unsupervised degradation representation learning )方法,用于无显式退化估计(without explicit degradation estimation)的盲超分(Blind SR)。 3、网络流程 网络分两部分:
目录 零、前言一、前置的准备1.硬件配置(最低配置)2.运行环境 二、安装过程3.安装 7 days to die 服务端 三、服务器1.运行2.配置 四、其它 零、前言 官方文档:https://7daystodie.fandom.com/wiki/Server(所有服务器配置都在此页面可以查找)
如需 FRP 局域网穿透到公网请参考:【2021/4/2发布适用】简单在 ARK: Survival Evolved 个人 PC 用 FRP+VPN 映射到公网 Windows 服务器教程(可多通),FRP 使用方法大同小异,唯一需要注意的是端口是 UDP 还是 TCP。
该文章只介绍如何用原生文件开服,如要用开服工具请参考其他教程(之后或者会出)。
一、前置的准备 1.硬件配置(最低配置) 操作系统:Windows Server 2012 x64(及以上)
处理核心:AMD EPYC 7K62 2.6GHZ 单核(及以上)
逻辑内存:4096 MB(及以上)
磁盘容量:50 GB(及以上)
公网带宽:2 Mbps(及以上)
以上是一个与朋友之间互相游玩,在10个人左右的所需配置,更高配置请自行斟酌。
2.运行环境 必备
名称下载地址备注Valve Steam CMDhttps://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip 其他(可选)
名称下载地址备注WinRAR 5.60 x64 for Windowshttps://pan.baidu.com/s/12GBmGpaB6OekOZYhErCn6w提取码:eqkvMicrosoft Visual Studio Codehttps://code.visualstudio.com 二、安装过程 在有足够大的磁盘内新建文件夹并把下载好的 steamcmd.zip 解压
服务器如果只有一个分区,则可以在桌面创建文件夹并把解压到的 steamcmd.exe 放进去
Ajax实现注册登录校验 1.在做项目的时候,或多或少都会用到ajax来实现注册登录的校验,例如,当你注册时,你输入一个用户名,就会提示你,用户名可用,或者,用户名已被注册 ,等等 ,就像下图这种。
接下来我们就实现一下这个简单的实例吧。
1.Controller的编写,这里为了方便,就伪造一个用户名密码。
@RequestMapping("user/reg") @ResponseBody public String login(String name, String pwd){ String msg = ""; if(name != null){ if("admin".equals(name)){ msg = "ok"; }else { msg = "username is error"; } } if(pwd != null) { if ("123456".equals(pwd)) { msg = "ok"; } else { msg = "your password is error"; } } return msg; } 注意别忘记@ResponseBody注解,返回的是字符串。
2.前端页面的编写,使用Ajax,我们导入Jquery
<%@ page isELIgnored="false"%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script src="
1. 登录linux服务器
2. 个人习惯(wangqinmin是我的名字,喜欢以自己的名字创建目录)
创建目录 mkdir wangqinmin
进入目录 cd wangqinmin
创建要下载jdk文件的目录,并下载jdk(这里多说几句!!!)
因为每个版本的下载地址不同,所以怎么找到我们想要下载的版本呢 ?
2.1 进入官网: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.1.1 第一步: 同意官网协议( 必须勾选 )
2.1.2 第二步: 下载该文件
2.2
创建java目录: mkdir java 进入目录查看已下载的jdk文件 cd /wangqinmin/java2.2
创建java目录: mkdir java 进入目录查看已下载的jdk文件 cd /wangqinmin/java
3. liunx安装其他软件 需要的一些依赖:
yum install glibc.i686
4. 解压jdk
进入目录: cd /wangqinmin/java
解压jdk: tar -xvf jdk-8u171-linux-x64.tar.gzjdk-8u171-linux-x64.tar.gz
5. 查看linux系统: 是否安装后jdk
rpm -qa | grep java
6. 卸载已经存在的jdk
命令:rpm -e --nodeps java-1.7.0-24.e16.i686
7. 配置环境变量
vim /etc/profile
怎么隐藏服务器的真实IP,是我们为了应对DDOS、CC等网络攻击的一种有效方法,可以让攻击者找不到我们真实的攻击目标无法攻击,从而保护我们的网站。
隐藏服务器真实IP的几种方法:
1、CDN:使用CDN节点加速,虽然CDN的主要作用是加速网站,但CDN也是可以隐藏服务器真实IP的,只不过CDN也有缺点,如果采用国内CDN,国外的黑客就可以利用工具获取服务器真实IP,因为国内CDN对国外没用。
2、域名导向:与CDN有相同作用,隐藏服务器真实IP,但没有CDN的地理位置限制,即把域名绑定到域名导向服务器即可。
3、高防IP:高防IP也是将服务器真实IP隐藏,然后将虚设IP映射到真实IP上,用户不管是怎么访问或检查,服务器第一IP始终是高防IP,而高防IP本身也是应对攻击而生。
4、服务器ICMP:禁止服务器ICMP响应,一般情况下攻击者会通过IP段来扫描存在的机器,即攻击扫描到服务器IP时,IP做出响应,即被做为有用的IP,一旦我们禁止服务器ICMP回显功能,那么即使攻击者扫描到我们的服务器IP,IP也不会做出回应,让攻击者认为此IP没有用。不管是Windows还是Linux系统的服务器,都可以通过防火墙来关闭ICMP回显功能。
总结:隐藏服务器真实IP是为了避免被攻击,不过真正有用避免或抵御网络攻击的方法还是需要采用高防服务器或者高防IP来应对,安全性更高。
#include <libssh2.h> int libssh2_session_handshake(LIBSSH2_SESSION *session, libssh2_socket_t socket); 1.描述 session ——由libssh2_session_init_ex返回的会话实例
socket ——连接的套接字描述符。通常,协议中的TCP连接允许任何可靠的传输,库将尝试使用任何berkeley套接字。
开始与连接主机的传输层协议协商。
套接字是网络通信路径的本地端点的抽象表示(句柄)。
Berkeley sockets API将其表示为Unix中的一个文件描述符(文件句柄),它为数据流的输入和输出提供了一个公共接口。简单来说:它们是利用标准 UNIX file descriptors(文件描述符)与其它程序沟通的一种方式。
2.返回值 成功时返回0,失败时返回负数。
3.错误 LIBSSH2_ERROR_SOCKET_NONE-套接字无效。
LIBSSH2_ERROR_BANNER_SEND-无法将标语发送到远程主机。
LIBSSH2_ERROR_KEX_FAILURE->与远程主机的加密密钥交换失败。
LIBSSH2_ERROR_SOCKET_SEND-无法在套接字上发送数据。
LIBSSH2_ERROR_SOCKET_DISCONNECT-套接字已断开连接。
LIBSSH2_ERROR_PROTO-套接字上收到无效的SSH协议响应。
LIBSSH2_ERROR_EAGAIN-标记为非阻塞I / O,但调用将阻塞。
简介: 今天看见一个WP主题很清爽,全站AJAX,支持和 WordPress 官方主题一样的在线更新 !
很适合做个人博客。
网盘下载地址: http://kekewl.net/VRN7xk5xGP00
图片:
there was an error while executing `VBoxManage`,a CLI used by Vagrant for controlling VirtualBox. The commond and stderr is shown below. 排查分析: 兼容性问题
解决方案:下载低版本的box即可
条件判断语句: if语句:条件成立执行的语句
在python中,如果在if语句中判断的变量是空字符串、0、None,则默认是false;如果变量里有任意值,则默认是True
“if 表达式(条件):
条件成立
else:
条件不成立执行的语句
注意 添加缩进 使用tab键”
t = True f = False if t: print('a') else: print('b') #输出结果: a if f: print('a') else: print('b') #输出结果: b 循环语句: for语句:for i in range(m,n,step):
range(3)---->range(0,3)---->包含0但是不包括3
for i in range(3): print(i) # 输出结果: 0 1 2 "range的范围只要正常执行完毕而没有异常break跳出,就可以执行else
range中传入三个参数时,第三个参数表示步长,每隔几取一次值
for i in range(0,4,2): print(i) else: print('正常结束') # 输出结果: 0 2 正常结束 只要有break执行了就不会执行else"
for i in range(0, 4, 2): print(i) if i == 2: break else: print('正常结束') # 输出结果: 0 2 # 在循环到i = 2时,if语句成立,执行break结束for循环,所以没有执行else里的内容
Linux 系统中最常用的网络配置命令包括ifconfig、 route ,其中ifconfig 用来查看和配置网络接口(通常是网卡)信息,包括网络接口设备的IP 地址、掩码等;route 用来管理Linux 系统内核中的路由表,它最大的用途就是用来设定静态的路由表项,通常是在系统用ifconfig 配置网络接口后,用它来设定主机或者一网段的IP 地址应该通过什么接口发送等。
ifconfig
ifconfig 的语法为:
ifconfig [-a] [-V] [-s] [[]]
[[-]broadcast []]
[netmask]
[up|down]
其中 interface 为网卡名,address 为IP 地址,broadcast 表示设置广播地址,其后的address 为广播地址的IP ,netmask 表示设置子网掩码,其后的address 为子网掩码的IP, up、 down 设置当前网卡的状态,up表示启用当前网卡,down 表示关闭当前网卡。
Ifconfig 的常用参数说明如下:
-a 查看所有网卡状态
-V 查看ifconfig 命令的版本信息
-s 查看统计信息
示例:
1) 将第一块网卡的 IP 地址设置为192.168.0.1:
ifconfig eth0 192.168.0.1 (格式: ifconfig 网络设备名 IP 地址)
2) 暂时关闭或启用网卡:
关闭第一块网卡: ifconfig eth0 down
启用第一块网卡 ifconfig eth0 up
3 )将第一块网卡的子网掩码设置为 255.
阿里云 Redis 从 2015 年商用以来,一直是全球领先的云KV内存数据库产品,自从正式推出云数据库Redis 6.0版本,包含多项重大功能更新和大幅度的性能提升。相比于社区最初多线程版本的设计,对Redis 6.0最终多线程版本的性能进一步提升了30%。
对于618、双十一、春运抢票这种高并发、大流量的场景一般都会用到缓存抗住大并发,市面上缓存框架用的最多的无疑就是Redis了,作为最受欢迎的分布式缓存中间件,是应对高并发,大流量,低延迟业务场景的不二选择,面试必问!
下面这十几道题都是关于Redis大厂面试被问到的,基本都跟Redis架构设计与底层原理相关,来看看你会几道?
P7面试题
1、如何用Redis高效实现12306的复杂售票业务
2、新浪微博突发事件如何做好Redis缓存的高可用
3、高并发场景缓存穿透&失效&雪崩如何解决
4、Redis高并发场景热点缓存如何重建
5、Redis集群架构如何抗住12306与双11的洪峰流量
6、Redis缓存与数据库双写不一致如何解决
7、双十一亿级用户日活统计如何用Redis快速计算
8、双十一电商推荐系统如何用Redis实现
9、类似微信的社交App朋友圈关注模型如何设计实现
10、美团单车如何基于Redis快速找到附近的车
11、Redis分布式锁主从架构锁失效问题如何解决
12、从CAP角度解释下Redis&Zookeeper锁架构异同
13、超大并发的分布式锁架构该如何设计
14、Redis底层ZSet跳表是如何设计与实现的
15、Redis底层ZSet实现压缩列表和跳表如何选择
16、Redis 6.0 多线程模型比单线程优化在哪里了
据我所知,如果能回答出其中的一半,就算是勉强及格了。
如果这些你都能全部回答出来,那你应该是妥妥的技术大牛了!可以放心去投大厂简历了!
如果你没办法完全答出这些问题,我推荐来你听听我朋友技术大牛诸葛的技术分享《Redis高并发架构设计与源码剖析》,两天300分钟全程直播,从Redis高并发架构设计到源码实现级别深度讲解,好好提升一下自己的核心竞争力!
本号福利来啦——前50名限时优惠~原价99元,限时优惠0.02元,核心技术一览????
5月6日晚上20:00开课
干货爆仓,全程高能????
大厂秒杀抢购系统后端Redis高并发架构实战
1、高并发场景秒杀抢购超卖Bug实战重现
2、秒杀抢购场景下实战JVM级别锁与分布式锁
3、大厂分布式锁Redisson框架实战
4、从Redisson源码剖析lua解决锁的原子性问题
5、Redis主从架构锁失效问题及Redlock详解
6、双十一大促如何将分布式锁性能提升100倍
7、利用Redis缓存集群架构抗住12306和双11流量洪峰
8、从CAP角度剖析Redis&Zookeeper锁架构异同
9、Redis缓存与数据库双写不一致终极解决
10、Redis缓存雪崩&穿透&失效终极解决
亿级流量新浪微博与微信Redis架构实战
1、Redis核心数据存储结构精讲
2、基于Redis实现12306与微博核心业务
3、Redis底层string编码int&embstr&raw详解
4、Redis底层压缩列表&跳表&哈希表详解
5、Redis底层ZSet实现压缩列表和跳表如何选择
6、美团单车查找附近的车基于Redis实现
7、Redis实现微博与微信消息时间线Timeline
8、微信点赞、收藏与标签基于Redis实现
9、微博与微信朋友关注模型基于Redis实现
10、电商推荐系统如何用Redis实现
深入底层C源码讲透Redis高性能数据结构
1、Redis核心数据结构精讲
2、亿级用户日活统计BitMap实战
3、Redis阻塞队列底层实现原理剖析
4、如何实现一个高性能的延迟队列
5、基于Geohash实现查找附近的人
6、深入C源码剖析剖析ZSet底层跳表实现
7、深入C源码剖析Redis核心数据结构设计
8、Redis 6.0 多线程相比单线程优化了啥
5月6日的直播间,还有福利派送????
2021年最新版一线互联网Java核心技术点
Linux nc命令用于设置路由器。
执行本指令可设置路由器的相关参数。
语法nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...]
参数说明:-g 设置路由器跃程通信网关,最多可设置8个。
-G 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
实例
TCP端口扫描# nc -v -z -w2 192.168.0.3 1-100
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open
扫描192.168.0.3 的端口 范围是 1-100
扫描UDP端口# nc -u -z -w2 192.
安装Xmanager 5
下载链接:https://pan.baidu.com/s/1JwBk3UB4ErIDheivKv4-NA
提取码:cw04
双击xmgr5_wm.exe进行安装
点击‘下一步’
选择‘我接受许可证协议中的条款’,然后点击‘下一步’
填写用户名之后,点击‘下一步’
选择存储路径,点击‘下一步’
选择‘典型’点击‘下一步’
点击‘下一步’
点击‘安装’
点击‘完成’结束安装
2、CentOS7安装远程桌面环境
命令窗口输入
yum -y groupinstall Desktop
yum -y groupinstall "X Window System"
1
2
3、Xstart配置
双击‘Xstart’
填写Linux服务器ip,协议选择SSH,输入用户名之后,点击标注图标
点击‘添加’,名称填写gdm,命令填写/etc/gdm/Xsession
点击‘高级’,再点击‘配置’
窗口模式选择Single Window Mode之后,点击‘设置’
窗口大小根据实际情况进行选择
4、通过Xstart远程连接CentOS7图形化界面
点击‘运行’
连接成功之后如图所示
---------------------
作者:仅此而已g
来源:CSDN
原文:https://blog.csdn.net/qq_37798548/article/details/84099477
版权声明:本文为博主原创文章,转载请附上博文链接!
可以用 df 这个命令
具体 要 man df 仔细看看
实例
[root@localhost mnt]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda7 ext4 25G 8.1G 16G 35% /
tmpfs tmpfs 754M 260K 754M 1% /dev/shm
/dev/sda9 ext4 42G 3.0G 37G 8% /home
/dev/sdb1 ext4 30G 44M 28G 1% /mnt/sdb1
/dev/sdb5 ext4 40G 48M 38G 1% /mnt/sdb5
/dev/sdb6 ext4 4.5G 9.1M 4.3G 1% /mnt/sdb6
[root@localhost mnt]# df -Tk
文件系统 类型 1K-块 已用 可用 已用% 挂载点
完美世界服务端视频架设教程
完美世界服务端视频架设教程
系统运行库:
libtask.tar.gz
compat-libstdc++-33-3.2.3-61.i386.rpm
pcre-7.0-2.i386.rpm (一般不用装)
JASDK:
java_ee_sdk-5_03-linux.bin
compat-libstdc++-33-3.2.3-61.i386.rpm(JASDK装不了,装这个在装JASDK)
我是在VM虚拟机上架设的... 大家仔细看..我不多说!
首先把VMLinux装好..Linux的版本不固定..只要是服务版的一般问题不大...
下面我们进入正题.. 我们首先来把服务端文件复制到相应文件夹!
这里我已经放好了...现在我们来看下具体放置的路径!
authd.conf table.xml GMServer.conf gmopgen.xml 全部放到/etc目录
并将里面IP配置修改为自己的!
还有大家要注意的KEY 一定要对应.. 看好服务端和客户端互对.. 比方说
服务端的KEY是123 456 客户端就应该是456 123 这样的比例很明白了吧..
还有把服务端文件夹pwserver 和cauthd文件夹复制到 /root目录
gmopgen.xml 里的3个服务器IP : 对应修改..
一定把这些加上...
还有host 文件.... 这些文件 都得改..不多说了这里注意下:
一共是3个连接数据库的 任选其一: 我用的Mssql 这里要改..
还有/root目录的隐藏文件.bash_profile 要修改... 不会的看 论坛教程
..然后JAVA 复制到/usr目录 .还有jakarta-tomcat-5.5.9 复制到/usr/local目录 时间比较成...下节继续.........
好了来我们继续...
我已经好拉`` 现在我们把应该设置权限的文件夹设置权限.否则启动服务的时候没权限 - - #
把权限设置 为 0777 设定循环组
好现在我们来修改下所修要修改的文件配置!
大家注意: gamed/ptemplate.conf文件配置的是人物的属性.. HP MP SP 以及升级经验.
前言 如何将两个数合并成一个数又能恢复回原来两个数?这个问题在某次撸代码地时候忽然产生,当时没有想到如何解决,但最近忽然想到了思路,然后趁着这个五一假期实现一下。
原理 这个问题,可不能使用普通的加减乘除解决,因为即使合并得到新数,也无法恢复成之前合并前的那两个数,如 1+3=4,但是4可以有 2+2…很多种方式。
我们可以采用二进制的方式解决这个问题。
合并 假设有两个数 1,3,在计算机语言里,默认是用 int 类型存放数值,一个 int类型 有32 个位,将 1,3分别转成二进制可得到:00000000000000000000000000000001,00000000000000000000000000000011,然后这两个值拼接起来就可以形成一个新的值,即0000000000000000000000000000000100000000000000000000000000000011,可以使用long类型保存,因为long类型有64位,刚好满足这两个值的拼接起来的长度。由此得到新值4294967299。
恢复 现在需要将4294967299 恢复成 1,3,如何处理?很简单,由于4294967299是1,3二进制拼接起来得到的,只要将4294967299转成二进制0000000000000000000000000000000100000000000000000000000000000011,又因为1,3分别占32位,所有,以第32位[从0开始]为分界点,分别得到00000000000000000000000000000001,00000000000000000000000000000011,将其转为10进制,即可得到1,3
实现 合并 还是以1,3为例子。先初始化 result 的值为 left,由于 result 是 long 类型,所以共有64位,此时 result 为 0000000000000000000000000000000000000000000000000000000000000001。左移32位,得到0000000000000000000000000000000100000000000000000000000000000000。接着合并right到 result 的 后32位中,我们可以才有 |运算符,刚可以将值为1的位保留起来,从而得到 0000000000000000000000000000000100000000000000000000000000000011,转成10进制就得到4294967299
/** * 将合并 left,right 成一个数 * @param left 用于合并的数1 * @param right 用于合并的数2 * @return left,right 合并后的数 */ private static long mergeNum(int left, int right){ if(left<0||right<0){ //不支持负数合并 throw new RuntimeException("not support negative to merge "
这是机翻的,但是大致上能看懂,
不缺少任何一行,有了这个以后,基本上OK啦,
什么命令都知道如何使用啦,
[mw_shl_code=xml,true]help
2015-06-09T23:11:16 7968.039 INF Executing command 'help' by Telnet from 192.168.137.1:60012
*** Generic Console Help ***
To get further help on a specific topic or command type (without the brackets)
help Generic notation of command parameters:
Required parameter
Possible types of parameter values
[param name] Optional parameter
*** List of Help Topics ***
None yet
*** List of Commands ***
admin => Manage user permission levels
打开pycharm,首先选择File->New->File创建需要的文件如config.ini,创建完成后,如果格式不对则说明未安装Ini包。
选择File->Settings->Plugins,搜索需要的文件格式ini并安装:
安装完成后,重启pycharm,返回项目中,查看创建的ini文件:
以上内容就是创建ini后缀文件的方法,仅供参考。