在csdn中看到一个题目
http://topic.csdn.net/u/20080626/13/4efca1a4-8534-44fd-ae87-f65463e7cb93.html
题目内容是:
三个数的乘法:a*b*c,共有两种结合方式:(a*b)*c,a*(b*c)
四个数的乘法:a*b*c*d,共有五种结合方式:((a*b)*c)*c, (a*(b*c))*d, a*((b*c)*d), a*(b*(c*d)), (a*b)*(c*d)
让你写一个函数,参数是乘数的个数,返回值是用乘法结合律后可能的结合方式总数。
记录一个解决方法
Matrix-Chain-Order(int p[])
{
n = p.length - 1;
for (i = 1; i <= n; i++)
m[i,i] = 0;
for (l=2; l<=n; l++) { // l is chain length
for (i=1; i<=n-l+1; i++) {
j = i+l-1;
m[i,j] = MAXINT;
for (k=i; k<=j-1; k++) {
q = m[i,k] + m[k+1,j] + p[i-1]*p[k]*p[j];//Matrix Ai has the dimension p[i-1] x p[i].
if (q < m[i,j]) {
m[i,j] = q;
s[i,j] = k;
}
}
}
}
}
这个方法的链接地址是
http://en.wikipedia.org/wiki/Chain_matrix_multiplication
上面的文章的解决方法我都快忘记添加了
解决办法是设置环境变量,大家听到这个都明白了吧,就是这样了,呵呵
先看看这两幅图片吧
图片1:

图片二:

看到麻烦了吧,在两个环境中gcc的版本不一致。
如果你的开发环境使用的是Eclipse,那么只能按照Dos的那个版本进行了,也就是3.4.4咯
呵呵,先把这个问题摆出来,然后再分析原因。
DOS下的gcc是在Cygwin的安装目录的C:\cygwin\bin下的gcc版本,
而Cygwin环境中的那个gcc是位于C:\cygwin\usr\local\bin下的gcc版本。这就是麻烦的根源,呵呵!
解决问题的办法我放到下一篇去解决,现在得好好想想!
安装cygwin后,gcc的版本到3.3.4版本,在编译一些Linux文件的时候有时会出现错误,比如编辑htun的时候,会出现MAX_PATH未声明的问题,这个时候需要升级GCC来满足要求。假设你已经安装了Cygwin了,在Cygwin中包含了gcc编译器,升级GCC的步骤如下:
1.在ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/下下载GCC的包。
2.编译安装gcc-4.3.0.步骤如下
将gcc-4.3.0.tar.gz解压到C:\cygwin\home\Administrator目录下。解压到这个目录中,避免了目录编译配置的麻烦。
进入Cygwin Bash Shell,cd gcc-4.3.0
gcc-4.3.0下的信息,ls -a
编译 ./Configure 需要一段时间生成makefile
make使用makefile生成安装文件,这个过程需要的时间很长,完成以后敲入
make install命令,这个时候开始进行安装,需要个几分钟的时间
3.查看GCC的版本
gcc -v,这个时候显示的内容为:
Using build-in specs.
Target:i686-pc-cygwin
configured with: ./configure
Thread model:single
gcc version 4.3.0(GCC)
附两个参考文章:
文章一:升级cygwin环境下的gcc到gcc-4.3.0 地址:http://hi.baidu.com/pasonu/blog/item/3863b87f27ae0d0d29388a59.html
内容:
前提条件
已经拥有cygwin提供的gcc环境(包括libc库和make)
准备源码
gcc-4.3.0(ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases)
gmp-4.2.1(ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure)
m4-1.4.10b(ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/cygwin/release/m4)
mpfr-2.3.0(ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure)
编译安装
按照上面源码所列的树形依赖关系逐个编译安装
gcc-4.3.0可只选core和g++,如果只用来c/c++开发
可以进一步升级gdb版本
编译安装完成之后,cygwin为你提供的windows下c/c++开发环境已经就绪并且升级到了gcc-4.3.0
文章二: 在cygwin下安装gcc4.0 地址:http://www.wantso.com/ShowArtitle.ASP?art_id=8571&cat_id=16
内容:
gcc4.0发布了,可惜cygwin现在最新的是gcc3.4.1。 http://www(83).icwin.net/bbs http://www.wantso.com 通过下载cygwin的安装包来用gcc4.0,看来还是需要等上一段时间,那我如何这让我如何能够忍受呢?我以前在linux升级过gcc,那么在 cygwin能不能呢?
我按照以前在linux下升级gcc的顺序在cygwin下来了一遍,结果是可以的,顺序和在linux下差不多。 http://www(83).icwin.net/bbs http://www.wantso.com
1 首先在http://gcc.gnu.org 下载gcc4.0的包gcc-4.0.0.tar.gz。 http://www(83).icwin.net/bbs http://www.wantso.com
2 使用winrar把gcc-4.0.0.tar.gz解压在安装目录下(c:\temp\ gcc-4.0.0),比在linux下容易多了,呵呵。 http://www(83).icwin.net/bbs http://www.wantso.com
3 建立目标目录(c:\temp\ build)。 http://www(83).icwin.net/bbs http://www.wantso.com
4 配置安装参数,通过在cygwin运行安装目录下的configure来配置,由于我只是测试所以太多的参数我也没有选择,只是设了一下安装目录。 http://www(83).icwin.net/bbs http://www.wantso.com (/cygdrive/c/temp/gcc-4.0.0/configure --prefix=/lib/gcc/i686-pc-cygwin/4.0.0 )
5 编译,在cygwin中运行
$ cd /cygdrive/c/temp/build
$ /cygdrive/c/temp/gcc-4.0.0/make
大概需要一个小时
6 安装 ,需要系统管理员的权限用户
在cygwin中运行
$ cd /cygdrive/c/temp/build
$ make install
安装到这里完成,基本上和linux下差不多,感觉好像还容易一些。 http://www(83).icwin.net/bbs http://www.wantso.com
接着要作的事情:
a 由于需要在windows的环境下使用gcc命令,在cygwin下用ln只是建立一个快捷方式,没有办法只好把在 /lib/gcc/i686-pc-cygwin/4.0.0/bin的gcc,g++,gcj都拷贝到/bin下了,覆盖了以前的东西,这个方法不太好,不过也就这样了,呵呵。 http://www(83).icwin.net/bbs http://www.wantso.com
b 把/lib/gcc/i686-pc-cygwin/4.0.0/lib所有文件拷贝到/lib下
c 用以前的c++程序来测试一下gcc4.0.0把
在安装VS2005 SP1的时候,会出现错误,一下是针对这些错误的解决方法:
| 1. |
单击“开始”,单击“运行”,键入 control admintools,然后单击“确定”。 |
| 2. |
双击“本地安全策略”。 |
| 3. |
单击“软件限制策略”。
注意:如果未列出软件限制,请右击“软件限制策略”,然后单击“新建策略”。 |
| 4. |
在“对象类型”下,双击“强制”。 |
| 5. |
单击“除本地管理员以外的所有用户”,然后单击“确定”。 |
| 6. |
重新启动计算机。 |