2004年08月13日 星期五 09:13
上周在火车上无聊,就掏出纸和笔也在考虑这个算法,最后的结果是把这个问题变成: 给定任何n个的数,如何使用四则运算获得m这个结果。 我的大概思想是一个递归加不断规约的过程: 1.对于n个数,从中间任意取出2个数。 2.对这两个数进行计算,把结果存放回原来的数中,现在就有n-1个数。 反复循环1,2两步操作,直到最终只剩下2个数。 在递归的过程中需要记录两个东西: 现有的计算和组合顺序。 未进行的计算顺序,以便于下次穷举。 最近很忙,有时间的时候会尝试把这个算法实现出来。 > -----Original Message----- > From: python-chinese-bounces at lists.python.cn > [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of > Zoom.Quiet > Sent: 2004年8月13日 08:44 > To: hoxide > Subject: Re: [python-chinese] 一个计算24点(或n点)的程序. > > Hollo hoxide: > > 不懂! > http://wiki.woodpecker.org.cn/moin.cgi/PyPorgramGames > > 启动了游戏收集! > > hoxide 解说一下子?? > > > /******** [2004-08-13]08:43:33 ; hoxide wrote: > > hoxide> 今天在网上同学求教1 5 6 7 用+-*/ 算出21. > hoxide> 自己曾经写过一个,但代码找不到了,偶知道24点的程序很多的说, > hoxide> 于是到网上搜了一下. > hoxide> 是有不少, > hoxide> 但是一个用c++的(其实根本就不能叫用c++,全是c的语法), > hoxide> 试了n多次,borlandc3.1和gcc都不能编译. > hoxide> 还找到了vb,和web版的,看来都没用. > hoxide> 在偶找东西搞得焦头烂额的时候,偶同学自己算出来了.(到底怎么算用这个程序试试吧) > > hoxide> 为了以后不被这种问题困扰,花一个小时用python自己写了一个,还是python好~~~~~~~ > > hoxide> funs = [ lambda x, item: (x+item[0], > hoxide> str(x)+'+('+item[1]+')' > hoxide> ), > hoxide> lambda x, item: (x-item[0], > hoxide> str(x)+'-('+item[1]+')' > hoxide> ), > hoxide> lambda x, item: (item[0]-x, > hoxide> '('+item[1]+')-'+str(x) > hoxide> ), > hoxide> lambda x, item: (x*item[0], > hoxide> str(x)+'*('+item[1]+')' > hoxide> ), > hoxide> lambda x, item: (item[0]==0 and (0,'ZZZ')) or \ > hoxide> (x/item[0], > hoxide> str(x)+'/('+item[1]+')' > hoxide> ), > hoxide> lambda x, item: (x==0 and (0,'ZZZ')) or \ > hoxide> (item[0]/x, > hoxide> '('+item[1]+')/'+str(x) > hoxide> ) > hoxide> ] > > hoxide> def con(num): > hoxide> l = len(num) > hoxide> p = list() > hoxide> if l==1: return {num[0]:str(num[0])} > hoxide> for i in range(l): > hoxide> for f in funs: > hoxide> p += map(lambda item: f(num[i],item), > hoxide> con(num[:i]+num[i+1:]).items() > hoxide> ) > hoxide> return dict(p) > > hoxide> print con(map(float,[1,5,6,7])).get(21.0,0) > > > hoxide> 代码我就不解释了,有问题就问吧. > > hoxide> 另外由于浮点计算的误差问题,".get(21.0,0"这句还不太完善,不过解决这个问题足够了,具体怎么完善大家都知道拉. > > hoxide> hoxide > hoxide> hoxide_dirac at yahoo.com.cn > hoxide> 2004-08-12 > > > ********************************************/ > > -- > Free as in Freedom > > Zoom.Quiet > > #=========================================# > ]Time is unimportant, only life important![ > #=========================================# > > sender is the Bat!2.12.00 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > >
2004年08月13日 星期五 09:22
Zoom.Quiet,您好! 他说的应该是freebsd的ports吧. 简单的make install就可以的了. ======= 2004-08-13 09:15:11 您在来信中写道:======= >Hollo DIrk: > > 谢谢!提点, >什么是 post 升级?? >手工逐一升级模块?? > >看 UPDATE.html 的意思是直接安装新版本的,再定制设置,归入旧内容? > >你是从版本多少升级上来的? > >可以给一个 steps ?? > >谢谢先! > > > > >/******** [2004-08-13]09:12:05 ; DIrk wrote: > >DIrk> Zoom, > > >DIrk> 先备份你定制的东西和配置文件,使用ports升级后恢复定制文件和配置文件。 >DIrk> 还有,一定要备份data目录。 > >DIrk> 我的升级没有发生错误! > >DIrk> DIrk > > >DIrk> ----- Original Message ----- >DIrk> From: "Zoom.Quiet" <zoomq at infopro.cn> >DIrk> To: "DIrk" <mailing at wandy.cn> >DIrk> Sent: Thursday, August 12, 2004 12:17 PM >DIrk> Subject: Re[2]: [python-chinese] MoinMoin的中文翻译有点错误! > > >>> Hollo DIrk: >>> >>> 升级安全吗?? >>> 仅仅覆盖原来的目录,保留设置文件就好的?? >>> >>> >>> /******** [2004-08-12]12:16:22 ; DIrk wrote: >>> >>> DIrk> 这个是 http://220.248.2.35 上的: >>> >>> DIrk> if (state == 1) msg = "您在 EPres 的编辑锁定, 还剩下 # 分钟." >>> >>> DIrk> 这个是我的站点上的: >>> >>> DIrk> if (state == 1) msg = "您对'FreeBSD'的锁定将在#分钟内失效." >>> >>> DIrk> 我们使用的文件是不同的,不知道你是否作了定制。 >>> >>> DIrk> (我已经将Moin升级到1.2.3) >>> >>> DIrk> DIrk >>> >>> >>> >>> >>> >>> DIrk> ----- Original Message ----- >>> DIrk> From: "Zoom.Quiet" <zoomq at infopro.cn> >>> DIrk> To: "DIrk" <python-chinese at lists.python.cn> >>> DIrk> Sent: Thursday, August 12, 2004 11:08 AM >>> DIrk> Subject: Re: [python-chinese] MoinMoin的中文翻译有点错误! >>> >>> >>> >> Hollo DIrk: >>> >> >>> >> 谢谢! >>> >> 可是,在 http://220.248.2.35:7080/moin 中是好的哪?? >>> >> >>> >> >>> >> /******** [2004-08-12]11:08:21 ; DIrk wrote: >>> >> >>> >> DIrk> 在MoinMoin的UTF-8的中文翻译文件中存在一个错误: >>> >> >>> >> DIrk> 大约在 59 ~ 60 行的样子: >>> >> >>> >> DIrk> '''Your edit lock on %(lock_page)s has expired!''': >>> >> DIrk> '''您对"%(lock_page)s"的编辑锁定已经超时!''', >>> >> DIrk> '''Your edit lock on %(lock_page)s will expire in # minutes.''': >>> >> DIrk> '''您对"%(lock_page)s"的锁定将在#分钟内失效.''', >>> >> DIrk> '''Your edit lock on %(lock_page)s will expire in # seconds.''': >>> >> DIrk> '''您对"%(lock_page)s"的锁定将在#秒内失效.''', >>> >> >>> >> DIrk> >>> >> >>> 由于翻译者在字符串中使用了双引号",而这段文字是在MoinMoin编辑一个页面的时候才会使用,这样,双引号致使JavaScript错误,正常的情况下,当你编辑一个页面的时候,在浏览器状态条显示剩余时间(初始是10分钟)。 >>> >> >>> >> DIrk> >>> 我已经修改如下:(或者可以修改PageEditor.py中的JavaScript) >>> >> >>> >> DIrk> '''Your edit lock on %(lock_page)s has expired!''': >>> >> DIrk> '''您对'%(lock_page)s'的编辑锁定已经超时!''', >>> >> DIrk> '''Your edit lock on %(lock_page)s will expire in # minutes.''': >>> >> DIrk> '''您对'%(lock_page)s'的锁定将在#分钟内失效.''', >>> >> DIrk> '''Your edit lock on %(lock_page)s will expire in # seconds.''': >>> >> DIrk> '''您对'%(lock_page)s'的锁定将在#秒内失效.''', >>> >> >>> >> DIrk> 其他地方的双引号我还没有发现问题,暂时不动。 >>> >> >>> >> DIrk> DIrk >>> >> >>> >> >>> >> ********************************************/ >>> >> >>> >> -- >>> >> Free as in Freedom >>> >> >>> >> Zoom.Quiet >>> >> >>> >> #=========================================# >>> >> ]Time is unimportant, only life important![ >>> >> #=========================================# >>> >> >>> >> sender is the Bat!2.12.00 >>> >> >>> >> _______________________________________________ >>> >> python-chinese list >>> >> python-chinese at lists.python.cn >>> >> http://python.cn/mailman/listinfo/python-chinese >>> >> >>> >>> >>> ********************************************/ >>> >>> -- >>> Free as in Freedom >>> >>> Zoom.Quiet >>> >>> #=========================================# >>> ]Time is unimportant, only life important![ >>> #=========================================# >>> >>> sender is the Bat!2.12.00 >>> >>> > > >********************************************/ > >-- >Free as in Freedom > > Zoom.Quiet > >#=========================================# >]Time is unimportant, only life important![ >#=========================================# > >sender is the Bat!2.12.00 > >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese > = = = = = = = = = = = = = = = = = = = = 致 礼! Jerry Marx zhiyuan.ma at enorbus.com.cn 2004-08-13
2004年08月13日 星期五 09:55
On 2004-08-13 09:13:1092359608 +0800, Alex Dong wrote: > 上周在火车上无聊,就掏出纸和笔也在考虑这个算法,最后的结果是把这个问题变成: > > 给定任何n个的数,如何使用四则运算获得m这个结果。 > > 我的大概思想是一个递归加不断规约的过程: > 1.对于n个数,从中间任意取出2个数。 > 2.对这两个数进行计算,把结果存放回原来的数中,现在就有n-1个数。 > 反复循环1,2两步操作,直到最终只剩下2个数。 > 在递归的过程中需要记录两个东西: > 现有的计算和组合顺序。 > 未进行的计算顺序,以便于下次穷举。 > > 最近很忙,有时间的时候会尝试把这个算法实现出来。 记得 chinaunix 上,有人写文章介绍一种通用算法时,就当场用 C++ 实现了一个框架,并用它很轻松的写出了24点的计算程序。不过刚才 找了找,没找到,和 alex 的思路差不多;不过用该算法,他很容易 的添加了组合顺序的支持、以及实质上是相同算式的结果的过滤。用了 不少 STL 的东西。
Zeuux © 2025
京ICP备05028076号