如何才能PAT甲级过八九十分

1001 害死人不偿命的(3n+1)猜想 (15 分)

卡拉兹(Callatz)猜想:

对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

阅读全文 »

安装Flarum论坛软件

##系统需求
服务器: Apache (需要支持 mod_rewrite)、Nginx、Lighttpd
PHP 5.5+,需要开启的扩展:mbstring, pdo_mysql, openssl, json, gd, dom, fileinfo
MySQL 5.5+

开启Apache的mod_rewrite:

阅读全文 »

#####思路总结
1.完全没必要将其转换成字符串,字符串处理相对复杂。
2.要先对结果进行分析,尤其当结果的情况有限时。根本没必要使用按位输出。
3.先在草稿纸上对问题进行分析,对结果进行分析,然后再考虑代码实现,不应该在代码实现上浪费太多时间。
4.代码越简洁越好,调试清晰方便。

阅读全文 »

首先的有一个搭建好的git服务器,在想要自动部署的git库的hook文件中添加自动部署hook,在hook中将DeployDir配置为网站根目录,在网站根目录运行

git clone /usr/gitRepo/web.git

将web文件克隆下来,这样在将更改提交到git仓库的时候,就会自动部署网站。

阅读全文 »

普通的类如何使用service中配置的seesionFctory操作数据库,通过WebApplicationContext获取容器,即可得到spring中实例化好的action bean,这样就可以调用action中配置好的service。

public List<BusLine> saveBusLine(int busLineId,String RouteInfo,String loc) {
    WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
    LineAction lineAction = (LineAction) context.getBean("LineAction");
    
    BusLine busLine = new BusLine();
    busLine.setBusLineId(busLineId);
    busLine.setLoc(loc);
    busLine.setRouteInfo(RouteInfo);
    
    lineAction.getBusLineService().saveOrUpdate(busLine);
    return null;
}

    //AJAX异步请求
    var xmlHttp;
    //该函数用于创建一个XMLHttpRequest对象
    function createXMLHttpRequest() {
        if (window.ActiveXObject) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } else if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }
    }

    function saveRoute(a,b) {
        //创建一个XMLHttpRequest对象
        createXMLHttpRequest();
        //将状态触发器绑定到一个函数
        xmlHttp.onreadystatechange = showStaus;
        //通过GET方法向指定的URL建立服务器的调用
        
        var parm = "route="+a+"&points="+b;			//构造URL参数
        xmlHttp.open("POST", "phone!saveCplInfo.action?",true);

        xmlHttp.setRequestHeader("cache-control","no-cache");
        xmlHttp.setRequestHeader("contentType","text/html;charset=uft-8") //指定发送的编码
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");  //设置请求头信息
        xmlHttp.send(parm); //设置为发送给服务器数据
        //发送请求
        //xmlHttp.send();
    }
    var flag = 0;
    function showStaus() {
        //定义一个变量用于存放从服务器返回的响应结果
        var result;
        
        result = eval("("+xmlHttp.responseText+")");
        if(flag != b){
            alert(result.mes);
            flag = b;
        }
        
    }

数据过长时不能使用get方式,使用post方式,将数据放到body中请求。

sudo gedit /usr/share/applications/webstorm.desktop

内容输入:

[Desktop Entry]
Encoding=UTF-8
Name=webstorm
Comment=webstorm IDE
Exec=/home/andrew/application/WebStorm-162.1812.21/bin/webstorm.sh
Icon=/home/andrew/application/WebStorm-162.1812.21/bin/webstorm.svg
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

以下是web.xml的配置信息。

<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

在applicationContext.xml中配置proxool。

<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>org.logicalcobwebs.proxool.ProxoolDriver</value>
    </property>
    <property name="url">
        <value>proxool.Pool_dbname</value>
    </property>
</bean>

以下是proxool.xml的配置信息,放到web-inf目录下。

<?xml version="1.0" encoding="UTF-8"?>
<proxool-config>
<proxool>
    <alias>Pool_dbname</alias>
    <driver-url>jdbc:mysql://123456.com:3306/schoolbus?useUnicode=true&amp;characterEncoding=utf8
    </driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
        <property name="user" value="123" />
        <property name="password" value="123456" />
    </driver-properties>

    <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->
    <house-keeping-sleep-time>90000</house-keeping-sleep-time>

    <maximumActiveTime>600</maximumActiveTime>

    <maximumConnectionLifetime>7200</maximumConnectionLifetime>
    <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->
    <maximum-new-connections>20</maximum-new-connections>
    <!-- 最少保持的空闲连接数 -->
    <prototype-count>3</prototype-count>
    <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new- connections决定 -->
    <maximum-connection-count>20</maximum-connection-count>
    <!-- 最小连接数 -->
    <minimum-connection-count>3</minimum-connection-count>
    <!-- 在分配连接前后是否进行有效性测试,这个是解决本问题的关键 -->
    <test-before-use>true</test-before-use>
    <test-after-use>true</test-after-use>
    <!-- 用于测试的SQL语句 -->
    <house-keeping-test-sql>SELECT CURRENT_USER</house-keeping-test-sql>

</proxool>
</proxool-config>

此时spring的hibernate的连接池配置完毕。

单独hibernate的proxool配置如下:

在hibernate.cfg.xml中只需要修改以下内容:

    <!-- Database connection settings -->    
    <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
    <property name="hibernate.proxool.pool_alias">Pool_dbname2</property>
    <property name="hibernate.proxool.xml">proxool.xml</property>

proxool.xml内容同上,pool_alias改为Pool_dbname2为两个连接池。