博文

波松分酒问题 C++求最优解. (2006-10-24 15:25:00)

摘要:/*
请设计程序解决“波松分酒问题”
问题如下:

某人有12品脱啤酒一瓶,想从中倒出6品脱,但他没有6品脱的容器,
仅有一个8品脱和一个5品脱的容器,怎样才能将啤酒分为两个6品脱?

抽象分析:

b = 大容器,也表示容积
s = 小容器,也表示容积
(f),(h),(e) 状态f=满, e=空, h=数字,表示容量

运算一: b(f) - s(e)  =>  b(b - s), s(f)
变例    b(h) - s(e)  =>  b(h - s), s(f)

运算二: b(e) + s(f)  =>  b(s), s(e)
变例    b(h) + s(f)  =>  b(f), s(s - b + h)

引出    b(f) - s(h)
        b(h) - s(h)

        b(e) + s(h)
        b(h) + s(h) 

如果以瓶中酒的数量为节点, 通过一次以上运算可达到节点之间认为连通.
此题可转化为一个有向图的搜索问题.
即找出......

阅读全文(3075) | 评论:0

Dev-cpp 小型指南(2006-10-24 15:21:00)

摘要:Dev-cpp是一个GCC在win32下的IDE程序,用Dephi 5编写,只有2M
具有以下功能:

   1.集成编译环境,支持工程模板.
   2.支持语法加高,自动注释,对中文的支持也不错.
   3.支持CVS集成
   4.支持源码分析,可以形成类树图.
   5.支持扩展包.

Dev-cpp官方发布有集成MinGW32 gcc编译套件,最新支持GCC 3.3(2003-7-15)
也可以支持MinGW其它版本和Cygwin gcc的各个版本.不过需要手动设置.

Dev-cpp支持多语言环境,中文版界面由我的好友nyra(nyra@sohu.com)维护,如果
大家发现中文版有翻释问题可以找她.如果有兴趣翻译帮助文件,也请联系.

Dev-cpp有两个常用版本,一是开发中的5.0beta,最新一版是4.9.8.0
另一个是4.01,是4.0的修正版(其中集成Gcc 2.9.5),前者功能较多,而后者较稳定.

图形化环境我就不多说了,和VC的用法类似,其实大家问题多集中于Gcc本身.

GCC, GCC和gcc不同的东西.前者是Gnu的编译环境,包括gcc, g++, gcj等多种语言的编译器
和as(汇编), ar(库), ld(联接器)等一系统编译工具.gcc是GCC中C语言的编译器,g++是
C++语言的编译器.

GCC被移植到多种操作系统中,在Win32上最著名是MinGW和Cygwin两个版本,MinGW的全称是
Minial GCC for Windows,如题,它是Win32上的一个小型GCC,只包括最少的GCC组件<10M
而Cygwin就是一个Unix On Windows的大系统,全部下载有300多兆,Unix下的大多数软件
在Cygwin中都有移植版,包括X-wind......

阅读全文(5549) | 评论:0

蛇形方阵 (2006-10-24 15:20:00)

摘要:/* 题目
按以下所示规律把1-N*N个数填入N*N的方阵中:
  1   3   4  10  11 
  2   5   9  12  19 
  6   8  13  18  20 
  7  14  17  21  24 
 15  16  22  23  25 
*/

#include <stdio.h>
#include <assert.h>
#include <string.h>
/*
解析:
 上三角形
 a(0)=   1     = 1    + 0 
 a(1)=  2 3    = a(0) + 1, a(0) + 1 + 1
 a(2)= 4 5 6   = a(1) + 2, a(1) + 2 + 1, a(1) + 2 + 2
 a(3)=7&n......

阅读全文(3620) | 评论:0