在城里2016-01-06 04:01:05

上小学的儿子问了我这么一道数学题:

1) 使用+,-,×,/,(,和)六个操作符;

2) 使用操作数5,5,5,5,5;

3) 要求每个操作数/操作符只使用一次。

列出所有可能的表达式,并计算每个表达式的值。

 

【注意】要排除诸如 +-,()或55这种操作数/操作符连一起的情况;也要排除5(,)(,)5,(5)等情况。

 

【脚本】版本使用python2.7x。演示脚本如下:

【运行结果】 共找到 210 表达式:
(5+5-5*5)/5 = -3
(5+5-5/5)*5 = 45
(5+5-5)*5/5 = 5
(5+5-5)/5*5 = 5
(5+5*5-5)/5 = 5
(5+5*5/5)-5 = 5
(5+5*5)-5/5 = 29
(5+5*5)/5-5 = 1
(5+5/5-5)*5 = 5
(5+5/5*5)-5 = 5
(5+5/5)-5*5 = -19
(5+5/5)*5-5 = 25
(5+5)-5*5/5 = 5
(5+5)-5/5*5 = 5
(5+5)*5-5/5 = 49

... (省略) ...

 

看来,脚本还是可以帮着干不少活的^_^。

在城里 2016.01.05

 

 

 

 




更多我的博客文章>>>
cse3782016-01-06 09:26:50
很不错!可以上传你的源代码么?我的咋运行结果不对呢?
cse3782016-01-06 09:29:04
另外,你这是使用了什么编辑器?可以清楚地显示语句块?比如if块或者for块?谢谢!
在城里2016-01-06 13:54:05
我用的是Komodo IDE,也有不少人在用Pycharm。不知道源码能否显示得好
hot_powerz2016-01-06 20:42:27
强大!是不是也可以算出 用操作符连接 0 1 2 3 4 5 6 7 8 9=100这样的问题?
chirolike2016-01-06 21:42:29
超强!略微简练一些的代码
在城里2016-01-07 02:42:05
的确简洁多了,赞!
在城里2016-01-07 02:46:15
有趣的问题!不过操作符的要求呢,随便什么都行(包括括弧)?
slow_quick2016-01-07 05:50:45
为嘛不能(5)?
hot_powerz2016-01-07 06:23:18
先简单点,没有(),没有除号,没有减号 (四个操作符与二个有很大分别吗?)题目来自
在城里2016-01-07 13:32:10
(5) 理论上可以,也不影响计算,但是一般不写这样的算式,因为没有意义,(5) = 5。当然了,规则是自己定义的。
在城里2016-01-07 13:46:34
这个算吗? (1*2+3-4/5/6+7)*9-8 = 100? 把0去掉了,+-×/各两个
在城里2016-01-07 15:46:37
没有很大分别,无非就是多花些时间(穷举出来)而已。不用穷举,虽然容易,但是什么时候完成就不知道了。。。
hot_powerz2016-01-07 18:51:57
你这个搞复杂了。题目是要你往空白里面填入运算操作符。我事先没讲清楚。只用+与x。后面这个数可能会变。如:
hot_powerz2016-01-07 18:57:05
电脑还是对这种开放型的问题不行,答案不对!
在城里2016-01-08 03:15:26
这个问题答案。。。
hot_powerz2016-01-08 03:24:22
还是不对啊,你把人家数字的顺序打乱了?这不叫往里面填运算符:=)
在城里2016-01-08 03:25:12
刚才疏忽了。
hot_powerz2016-01-08 03:27:13
好厉害,没有考倒你啊!求代码!
在城里2016-01-08 03:45:35
代码在这里:
hot_powerz2016-01-08 05:37:03
好精炼的代码,多少年的功力?再赞!以后代码问题就找你了!
在城里2016-01-08 13:39:43
没问题!我们一起共同进步。。。
slow_quick2016-01-11 23:25:18
记得从前读过C/C++什么书,有简单计算器的程序。把那些符号序列穷尽一下,让程序去分析那些有syntax error,那些能算就