一个经典的全排列算法
设想有 n 个数字, 先取第一个数字. 再取第二个数字, 第二个数可以放在第一个数的左或右面, 就是有 0, 1 两个选择. 再取第三个数, 放到前面选好的两个数字中, 可以放在最左, 中间, 最右, 就是有 0, 1, 2 三个选择. 嗯, 很自然吗. 忽然你想到了二进位, 八进位那些数系转换关系。可以设计这样一个数, ...xyz, 其中个位数 z 是二进位的, 也就是放第二个数的两个位置; 十位数 y 是三进位的, 代表放第三个数字的三个位子, 然后百位数是四进位, 千位数是五进位的, 依以类推." 没错, 这样设计的话, 如果 0 表示放於最左面的话, 则 "2021
组合算法
本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为 “01”组合,同时将其左边的所有“1”全部移动到数组的最左端。 当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得 到了最后一个组合。 例如求5中选3的组合: 1 1 1 0 0 //1,2,3 1 1 0 1
全排列算法
从1到N,输出全排列,共N!条。 分析:用N进制的方法吧。设一个N个单元的数组,对第一个单元做加一操作,满N进 一。每加一次一就判断一下各位数组单元有无重复,有则再转回去做加一操作,没 有则说明得到了一个排列方案。[@more@]解法一:执行速度:10秒 #include #define n 5 int a[n],b[n]; void swap(int m) { int b1=b[m]; int b0=b1; while(a[b0]>=m){ b0--; if(b0<0)b0=n-1; } int temp=a[b0]; a[b0]=a[b1]; a[b1]=temp; int a0=a[b0]; int a1=a[b1]; temp=b[a0]; b[a0]=b[a1]; b[a1]=temp; } void output() { for(int j=0;j
在SUN机器上设置DNS客户端
在SUN机器上设置DNS客户端需要二个步骤: 1.创建/etc/resolv.conf文件 一个示例的resolv.conf文件如下: domain sun.com nameserver 127.0.0.1 nameserver 192.1.0.11 nameserver 192.1.0.10 文件中主要包含二部分内容,第一行是 domain 你申请的域名,例,申请域名为piecust-cn.net.edu.cn,则写为: domain piecust-cn.net.edu.cn 第二行是名称服务器,示例表示本机就是DNS服务器,其格式为 nameserver IP地址,该段可以是DNS的主域名称服务器、备份域名称服务器或缓冲名称服务器,但是书写时不可以超过3个服务器。如果网络中只有一个DN
c++ dll 编程
在Silk Performer 由于一些原因,经常需要调用dll 动态连接库, 将c++ dll 编程文章摘录如下:[@more@] 学习计划中并没有C++这一项,我也没有想过要学习它,只是公司有一个项目要用到C++,没办法只好学习了!即然要学,那就要坚持地好好学下去。毕竟这是一门使用者最多,在高级语言中可谓是最为强大的语言了。先转载一篇工作中要用到的文章作为学习的开篇吧。一、前言 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上Windows操作系统中几乎所有的内容都由DLL以一
cde登录问题
因为xwin32使用的是自己的字体,HP_unix在登陆的时候默认使用的字体是zh_CN.hp15CN,所以在登陆的时候会产生乱码。解决方法有两个: 第一、使用en_GB.roman8。因为xmanager这个字体与hpux的字体相同,所以使用en_GB.roman8就不会产生乱码。 在/etc/dt/config/Xconfig中Dtlogin*language: en_GB.roman8即可; 2.采用xwin32 登录cde 如果nsswitch.conf 先dns 然后hosts 将出错.修改该文件, 利用ping命令能够正常ping 通主机名.[@more@]
silk performer 录制错误
一、录制时脚本为空的解决办法使用SilkPerformer最常见的问题是在用录制时,录制不上内容,Functions数始终为0,脚本为空。1. 检查注册表中的Key: HKEY_LOCAL_MACHINE | SOFTWARE | Microsoft | Windows NT | CurrentVersion | Windows | AppInit_DLLs ,其值应为:qaphooks.dll。如果在qaphooks.dll后面有逗号或者空格,必须删除逗号或空格。2. 检查注册表中的Key: HKEY_CURRENT_USER | SOFTWARE | Microsoft | Windows | CurrentVersion | Explorer | BrowseNewProcess,其值应为:yes。3. 检查注册表中的Key: HKEY_LOCAL_MACHINE |