<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Nathan_wz的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Nathan_wz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Nathan_wz]]></copyright><item><title><![CDATA[Perl文本替换命令]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8678190</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8678190</guid><author>Nathan_wz</author><pubDate>Fri, 15 Mar 2013 15:21:15 +0800</pubDate><description><![CDATA[perl -pi -e 's|n_cells = (.)*|n_cells = 64 64 64|' poisson.inputs]]></description><category></category></item><item><title><![CDATA[OMP 编程]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8470477</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8470477</guid><author>Nathan_wz</author><pubDate>Sat, 05 Jan 2013 19:34:00 +0800</pubDate><description><![CDATA[设置线程数：
export OMP_NUM_THREADS=2


头文件
#include


编译命令：
g++ test.c -o test -fopenmp


查看线程数目：
omp_get_thread_num()]]></description><category></category></item><item><title><![CDATA[建模必备软件下载]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8330975</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8330975</guid><author>Nathan_wz</author><pubDate>Wed, 19 Dec 2012 11:20:27 +0800</pubDate><description><![CDATA[http://www.madio.net/thread-169633-1-1.html





1、必备软件1 D* g' y+ j* j$ Y* R) H* I/ S

建模计算必备：) y7 P0 j  E) u: n
5 v( A' F9 |. _3 h+ E
Matlab（用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境）http://ku]]></description><category></category></item><item><title><![CDATA[gnuplot常用技巧]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8313625</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8313625</guid><author>Nathan_wz</author><pubDate>Tue, 18 Dec 2012 11:51:59 +0800</pubDate><description><![CDATA[一、        基础篇：
在linux命令提示符下运行gnuplot命令启动，输入quit或q或exit退出。

1、plot命令
gnuplot> plotsin(x) with line
linetype 3linewidth 2 或
gnuplot> plotsin(x) w l
lt 3 lw2   %用线画，线的类型（包括颜色与虚线的类型）是3，线的宽度是2，对函数si]]></description><category></category></item><item><title><![CDATA[vim中大小写转化]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8312888</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8312888</guid><author>Nathan_wz</author><pubDate>Tue, 18 Dec 2012 10:14:40 +0800</pubDate><description><![CDATA[vim中大小写转化的命令是
gu或者gU
形象一点的解释就是小u意味着转为小写；大U意味着转为大写.

剩下的就是对这两个命令的限定（限定操作的行，字母，单词）等等

1、整篇文章大写转化为小写
  打开文件后，无须进入命令行模式。键入:ggguG 

解释一下：ggguG分作三段gg gu G
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
2、整篇文章小写转化为大写]]></description><category></category></item><item><title><![CDATA[”危险“的restrict与GCC的编译优化]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8274451</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8274451</guid><author>Nathan_wz</author><pubDate>Sun, 09 Dec 2012 10:15:01 +0800</pubDate><description><![CDATA[restrict是C99标准中新添加的关键字，对于从C89标准开始起步学习C语言的同学来说（包括我），第一次看到restrict还是相当陌生的。Wikipedia给出的解释如下：

In the C programming language, as of the C99 standard, restrict is a keyword that can be used in pointer de]]></description><category></category></item><item><title><![CDATA[Java多线程优化之偏向锁原理分析(转载)]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8208681</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8208681</guid><author>Nathan_wz</author><pubDate>Wed, 21 Nov 2012 16:28:53 +0800</pubDate><description><![CDATA[本文详细介绍了Java偏向锁的实现原理。偏向锁是Java 6引入的一项多线程优化。Java多线程优化的实现一般有轻量级锁和偏向锁两种方法。

AD：







本文来自Ken Wu's Blog，原文标题：《Java偏向锁实现原理(Biased Locking)》。

51CTO编辑推荐：Java线程专题

阅读本文的读者，需要对Java轻量级锁有一定的了解，知道l]]></description><category></category></item><item><title><![CDATA[Ubuntu添加开机自动启动程序的方法（转载）]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8200680</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8200680</guid><author>Nathan_wz</author><pubDate>Mon, 19 Nov 2012 18:11:03 +0800</pubDate><description><![CDATA[1. 开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程，启动其它进程。通常情况下，修改放置在
/etc/rc或
/etc/rc.d 或
/etc/rc?.d
目录下的脚本文件，可以使init自动启动其它程序。例如：编辑/etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本)，在文件最末]]></description><category></category></item><item><title><![CDATA[UBUNTU12.04下安装配置体验gnome3 (转)]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8200204</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8200204</guid><author>Nathan_wz</author><pubDate>Mon, 19 Nov 2012 16:44:49 +0800</pubDate><description><![CDATA[http://blog.sina.com.cn/s/blog_51033a8c01013lcs.html


自己并不是一个思想前卫的人,穿衣审美也都是大众眼光.但是唯独喜欢在计算机方面尝试最新,心肝情愿的做小白鼠.近日,按耐不住,安装了linux中非常著名的发行版ubuntu.ubuntu12.04是一个长期支持的版本,官方宣称对该版本支持5年.

    ubuntu12.04默认采]]></description><category></category></item><item><title><![CDATA[Ubuntu12.04 更新源]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8199550</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8199550</guid><author>Nathan_wz</author><pubDate>Mon, 19 Nov 2012 14:48:29 +0800</pubDate><description><![CDATA[1、首先备份Ubuntu 12.04源列表 
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup （备份下当前的源列表，有备无患嘛） 
2、修改更新源 
sudo gedit /etc/apt/sources.list （打开Ubuntu 12.04源列表文件） 
3、将下面的代码粘贴进去（“#”开头的那一行为注释，可以直接]]></description><category></category></item><item><title><![CDATA[C/C++编译过程的9个阶段]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8196630</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8196630</guid><author>Nathan_wz</author><pubDate>Sun, 18 Nov 2012 16:41:48 +0800</pubDate><description><![CDATA[标准C和C++将编译过程定义为9个阶段(Phases of Translation)：
 
1.字符映射(Character Mapping)
    文件中的物理源字符被映射到源字符集中，其中包括三字符运算符的替换、控制字符(行尾的回车换行)的替换。许多非美式键盘不支持基本源字符集中的一些字符，文件中可用三字符来代替这些基本源字符，以??为前导。但如果所用键盘是美式键盘，有些编译器可能不对]]></description><category></category></item><item><title><![CDATA[什么是可重入函数和不可重入函数(转)]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8196618</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8196618</guid><author>Nathan_wz</author><pubDate>Sun, 18 Nov 2012 16:35:06 +0800</pubDate><description><![CDATA[可重入函数


     在 实时系统的设计中，经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话，那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据，从而导致不可预料的后果。那么什么是可重入函数呢？所谓可重入是指一个可以被多个任务调用的过程，任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。]]></description><category></category></item><item><title><![CDATA[C++ swap宏]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8154107</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8154107</guid><author>Nathan_wz</author><pubDate>Tue, 06 Nov 2012 18:09:11 +0800</pubDate><description><![CDATA[http://bbs.youkuaiyun.com/topics/330252958

目前了解到的有SWAP（val1, val2）三种，各有优缺点
#define SWAP(x, y) \
            do     \
            {      \
                (x) = (x) ^ (y) \
                (y) = (x)]]></description><category></category></item><item><title><![CDATA[C++ 带有默认参数的虚函数]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8153829</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8153829</guid><author>Nathan_wz</author><pubDate>Tue, 06 Nov 2012 17:23:15 +0800</pubDate><description><![CDATA[在C++编译器中，默认参数是静态绑定的。
对于函数
void func(int x, int y = 2);
如果在程序中出现func(1)调用。编译器会生成类似如下代码：
push 2;//默认参数
push 1;//x的参数值
call func
测试代码：
#include
using namespace std;
class Base
{
public:
  virtual v]]></description><category></category></item><item><title><![CDATA[C++模板元编程]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8153811</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8153811</guid><author>Nathan_wz</author><pubDate>Tue, 06 Nov 2012 17:14:34 +0800</pubDate><description><![CDATA[使用TMP在编译阶段计算阶乘：



#include
using namespace std;
template
struct Factorial {
  enum { value = n * Factorial::value};
};
template<>
struct Factorial {
  enum { value = 1 };
};

int main()
{
  cout:]]></description><category></category></item><item><title><![CDATA[线段拼接问题]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077921</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077921</guid><author>Nathan_wz</author><pubDate>Tue, 16 Oct 2012 16:50:40 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1089
题目等价意思:
给定数轴上一组线段，线段可能会相交。
如果相交，则将两线段拼接起来。如[1, 3] [2 4]， 则拼接之后得到的线段为[1, 4]。
以升序输出经过这些拼接操作之后得到的线段。
思路：
先排序，然后线性扫描数组，拼接相交的线段。
代码：
#include
#define MAX_SIZE 50000
t]]></description><category></category></item><item><title><![CDATA[最多不相交线段]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077732</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077732</guid><author>Nathan_wz</author><pubDate>Tue, 16 Oct 2012 16:16:25 +0800</pubDate><description><![CDATA[题目描述:已知数轴上0Bi,i=1..N）定义。端点坐标在（-999，999）内，坐标为整数。有些线段可能相交。编程实现删除最少数目的线段，使得余下的任意两条线段不相交。输入：第一行为一整数N。接下来有N行，每行包含两个整数 (Ai 和 Bi), 用空格隔开。
输出：整数p，即删除后余下的线段数。
样例输入：
3
6 3
1 3
2 5
样例输出：2
代码:
#include
t]]></description><category></category></item><item><title><![CDATA[重复最长的两个线段]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077698</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8077698</guid><author>Nathan_wz</author><pubDate>Tue, 16 Oct 2012 16:09:02 +0800</pubDate><description><![CDATA[题目：


分析：
思路：先排序，后贪心
设输入线段的数组为A[0..n-1]，每条线段为(x, y)
（1）首先将A排序（先按x排，如果x相等，则按y排）
（2）令opt(i) 表示a[i]与a[j]相交的最大长度（其中i 
          令a[k]表示a[i+1], a[i+2], a[i+3], .., a[n-1]中第一条不完全被a[i]覆盖的线段 （a[k].y >]]></description><category></category></item><item><title><![CDATA[关于随机数生成器问题]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8045870</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8045870</guid><author>Nathan_wz</author><pubDate>Sun, 07 Oct 2012 19:10:54 +0800</pubDate><description><![CDATA[用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的， 
比较好的做法是： j=(int)(ｎ*rand()/(RAND_MAX+1.0))　　 产生一个0到ｎ之间的随机，RAND_MAX＝0x7fffffff
分析：
１、假如rand()返回0~150之间的数
那么 rand() % 100生成0~50的概率，要大于51~99的概率
这]]></description><category></category></item><item><title><![CDATA[概率题：10序列的期望长度（人搜）]]></title><link>https://blog.youkuaiyun.com/Nathan_wz/article/details/8045710</link><guid>https://blog.youkuaiyun.com/Nathan_wz/article/details/8045710</guid><author>Nathan_wz</author><pubDate>Sun, 07 Oct 2012 17:56:36 +0800</pubDate><description><![CDATA[有个随机数生成器，每次产生一个0或者1的随机数，若当前生成的数小于上一个数，则停止，否则继续生成下一个数。问生成序列的长度期望是多少。
分析：
令p(n)为长度为ｎ，最后一个数字为０，后一个数字都不大于前一个数字的概率
令q(n)为长度为ｎ，最后一个数字为１，后一个数字都不大于前一个数字的概率（实际上此序列为ｎ个１组成的序列）
另k(n)为随机数生成器生成的串长度为ｎ的概率
得到递推关系]]></description><category></category></item></channel></rss>