游戏开发论坛

 找回密码
 立即注册
搜索
楼主: windover

[讨论] 这是我招聘的一个题目。

[复制链接]

1

主题

265

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2006-12-7 22:49:00 | 显示全部楼层

Re: 这是我招聘的一个题目。

确实很头痛,只能大说说思路,穷举是最懒的,虽然可以解决。想当初算24点时大脑高速运转,现在要知道是怎么办到的还真有点不可思议。


1

主题

265

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2006-12-7 23:01:00 | 显示全部楼层

Re: Re:这是我招聘的一个题目。

xianwei: Re:这是我招聘的一个题目。

恩, 我觉的按人脑的方式, 比较简单, 首先人脑又记忆功能, 你也可以模仿,写个文件专门记录, 可以得出数...

你这样想不全面,如果2也必须参加运算的情况则你就遗漏了,
  比如 2 , 1 , 1 , 7这4个数,1 1 7这3个数你穷举是不可能得到24的,但实际上还是可以:(2+1)*(7+1)
我就是因为考虑的稍多一些,才没有答案。而你那样做最后只是被动的思考,除非任意4张牌的情况你都记录了,否则你的方案就是有缺陷的。
在我看来,只有通过结合人脑思维方式和完整的逻辑归类才能完美解决,估计不是1天2天的事,看出题人的意思,也就是考察一下面试者的逻辑能力和思维技巧而已。
   路过

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2006-12-7 23:18:00 | 显示全部楼层

Re: Re: Re:这是我招聘的一个题目。

zhouziru: Re: Re:这是我招聘的一个题目。


你这样想不全面,如果2也必须参加运算的情况则你就遗漏了,
  比如 2 , 1 , 1 , 7这4个数,1 1 7这3个...

你好象没懂我的意思, 我指的是先对特例进行计算, 假如得不到结果, 在跳出大循环,进行穷举。 我也说了, 我是刚看到题目就立即做出的反映

10

主题

136

帖子

136

积分

注册会员

Rank: 2

积分
136
 楼主| 发表于 2006-12-8 09:05:00 | 显示全部楼层

Re:这是我招聘的一个题目。

基本上穷举也需要说明穷举的方式,因为必须考虑括号。能够说明如何穷举括号的
还没有遇到一个。

135

主题

3447

帖子

3800

积分

论坛元老

总版主

Rank: 8Rank: 8

积分
3800
QQ
发表于 2006-12-8 11:45:00 | 显示全部楼层

Re:这是我招聘的一个题目。

穷举

两层循环,第一层增加+、-、*、/四种符号,可以写作:
X _ X _ X _ X =24 (X代表数字,_代表+-*/符号)
第二层运算判定括号,可以有以下的组合方式:
(X _ X) _ X _ X =24
((X _ X) _ X) _ X =24
X _ (X _ X) _ X =24
(X _ (X _ X)) _ X =24
X _ ((X _ X) _ X) =24  
X _ X _ (X _ X) =24
X _ (X _( X _ X)) =24
(X _ X _ X) _ X =24
X _ (X _ X _ X) =24
(X _ X) _( X _ X) =24
这些括号组合方式,在做一次遍历,自然就可以检查到所有结果了。
      

0

主题

21

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2006-12-8 11:58:00 | 显示全部楼层

Re:这是我招聘的一个题目。

导论:
我是这么定性这个问题的:在4元的基础上(范围内)研究2元组合关系问题。
最原始代表:数1,数2,数3,数4
二次代表:x1,x2,x3,x4
4元,3运算
一些基本的试探:x1*(x2+x3)*x4 向量x2->x3->x1->x4
                        (x1+x2)*(x3+x4) 向量x1->x2 x3->x4 x2->x4
4点4线问题,所谓4线,第一条线必须是从外面连接第一个点,后面3线由第一点出发连接其他3点,这4线要连接所有4个点,每个点只能成为一次终点。
也可以这样表达:4点3线问题,所谓3线,3线由第一点出发连接其他3点,这3线要连接所有4个点,不允许有漏点。
使用传统的数学式是无法研究出来编程思路的。需要改变一下式子的表达方式。由于传统的数学式不能很好表达顺序性。由于有括号及乘号除号的存在,式子各元的正常计算关系遭到破坏。所谓正常的计算关系是由左向右计算。弱关系【+-】。强关系【*/】。更强关系【()】。由于不论是关系的强弱,反正这样的式子就一种计算顺序。这种计算顺序又可以分为一气性与两气性,我在前文的一些基本试探中的式子中,式1是一气,式2是两气,气也是发源,一气是一个发源,二气是两个发源。画线枚举问题。
解决24点计算问题:
container()将四个数装入四个容器(变量)里
vector()确定四个数的运算链,可以是一气性的,也可以是二气性的。
estimate()根据运算链,得出结果,看是否24了
是否存在重复计算的问题我不清楚。
还有我编程不行。便不写程序了。我用了一个多小时整理这些想法和写下这些文字。

0

主题

21

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2006-12-8 12:16:00 | 显示全部楼层

Re:这是我招聘的一个题目。

x1->x2与x2->x1等价吗?在+*时等价,在-/时不等价。
所以说x1->x2->x3->x4与x4->x3->x2->x1等价吗就很难说了。
一气性时,有4*3*2*1种运算链。二气性时,有8种运算链。

0

主题

21

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2006-12-8 12:36:00 | 显示全部楼层

Re:这是我招聘的一个题目。

什么括号不括号的,需要从本质上了解运算的次序。括号体现了一种相对优先等级。弱关系【+-】。强关系【*/】。更强关系【()】,这里的【()】就是一种附加符号,其必须与+-*/一起使用。其实可以去掉括号这东西,将有括号的弱关系设计出一种新的符号系,如(x1+x2)*x3记做x1$x2*x3,x1$x2就表示x1要和x2先相加再乘以x3。这样就有了弱关系【+-】。强关系【*/】。更强关系【$#】。创造一些新符号。
计算24点时不用考虑符号系。考虑的是运算链。

49

主题

1388

帖子

1432

积分

金牌会员

Rank: 6Rank: 6

积分
1432
发表于 2006-12-8 16:49:00 | 显示全部楼层

Re:这是我招聘的一个题目。

和yii的穷举方式差不多,^_^

不过yii的结构是X _ X _ X _ X =24 ,我的是 _X _ X _ X _ X_ =24
最左边和最右边的"_"为特殊位置,只能选择(或者)

好处是一层循环,和忽视(和),但不好的是,就需要先经过一次判断这个式子有没有意义

如果把 X视作 对象的话,+-*/视作这个对象的方法,如果可以构造出一个合适的类,()那就也可以被忽视。

41

主题

2104

帖子

2109

积分

金牌会员

Rank: 6Rank: 6

积分
2109
发表于 2006-12-8 17:58:00 | 显示全部楼层

Re:这是我招聘的一个题目。

很难算啊。。。
比如3 3 8 8这种题

结果是 8 / (3 - 8 / 3)
电脑不会计算分数
只能用float算
用float算又不能最后直接==24
还要设一个误差值
这个值设多大合适呢,大了可能把本来不是的结果选进来,小了可能把正确的结果筛出去
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-9 04:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表