Yonghang

From TCS Wiki
Revision as of 10:16, 11 November 2010 by imported>Y0ukn0w (→‎11/10/10)
Jump to navigation Jump to search

My Progress by yonghang

11/9/10

今天把ubuntu重新安装了一遍,将分区大小改为了6GB。在重新装的时候遇到了一点问题,可以上网,但update manager无法正常工作,正在国外论坛查找解决方案,不知怎么就突然好了,下次遇到还是没有办法。 在windows中的文件和ubuntu中的文件互相移动后(通过将磁盘mount的方式),如果再次访问,经常会出现permission denied的情况,不是太建议这么做。 下面介绍gnu库的基本安装方法

  1. 从gnu的ftp上下载你所需要的库,以gsl为例
  2. 将压缩包解压至非mount设备的地方,比如home/y0ukn0w/Documents //y0ukn0w is my username
  3. cd /home/Documents/gsl-1.14
    chmod a+x configure //有时不需要这一句
    ./configure
    make
    make install
  4. ps : 可以打开文件夹,找到对应的INSTALL,里面会有说明
  5. 在连接的时候可能还是会出错。这时,可以选择输入相应的指令;如果你用的是codeblocks,那么,settings->compilers and debugger settings->linker libraries,在这里加入相应的lib

下面介绍gsl/gsl_rng.h的简单使用方法 代码如下

#include <stdio.h>
#include <gsl/gsl_rng.h>
#include<time.h>
int
main (void)
{
  const gsl_rng_type * T;
  gsl_rng * r;
  T = gsl_rng_rand; //可以将其设置为不同的值,以获取不同的随机数,如改为gsl_rng_randu,gsl_rng_knuthran2002,具体参考manul
  r = gsl_rng_alloc (T);
  int i, n = 10;
  gsl_rng_set(r,int(time(NULL))); //设置随机数seed
  gsl_rng_env_setup();
  for (i = 0; i < n; i++)
    {
      double u = gsl_rng_uniform (r);
      printf ("%.5f\n", u);
    }
   double u = gsl_rng_uniform(r);
   printf("%.5f\n",u);
  gsl_rng_free (r);
  return 0;
}


在写需要template的头文件时,为方便调试,往往通过修改头文件的方式来完成。 现在想来,是自己的接口设计的还不够好。 现在数据的输入输出打算这样完成:

  1. 一个程序负责生成随机数,将其输入到data.in文件中
  2. 主程序中有一个函数ReadData,测试程序中打开data.in和data.out,调用ReadData,将数据读入,处理后输出到data.out中。

--You will when you believe 13:03, 8 November 2010 (UTC)

11/10/10

补:昨天把kaiyuan写的代码看了一遍,修改了一下,把gsl_rng.h的东西用了进去,转为ubuntu下可以运行的版本 同样的,关于程序运行的次数,我也有疑问,为什么每次的次数感觉远大于两次