用Python解决一道小学数学题

来源: 在城里 2016-01-05 20:01:05 [] [博客] [旧帖] [给我悄悄话] 本文已被阅读: 次 (1761 bytes)

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

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

 

 

 

 




更多我的博客文章>>>

所有跟帖: 

很不错!可以上传你的源代码么?我的咋运行结果不对呢? -cse378- 给 cse378 发送悄悄话 cse378 的博客首页 (133 bytes) () 01/06/2016 postreply 01:26:50

另外,你这是使用了什么编辑器?可以清楚地显示语句块?比如if块或者for块?谢谢! -cse378- 给 cse378 发送悄悄话 cse378 的博客首页 (29 bytes) () 01/06/2016 postreply 01:29:04

我用的是Komodo IDE,也有不少人在用Pycharm。不知道源码能否显示得好 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (2412 bytes) () 01/06/2016 postreply 05:54:05

强大!是不是也可以算出 用操作符连接 0 1 2 3 4 5 6 7 8 9=100这样的问题? -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (0 bytes) () 01/06/2016 postreply 12:42:27

有趣的问题!不过操作符的要求呢,随便什么都行(包括括弧)? -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (264 bytes) () 01/06/2016 postreply 18:46:15

先简单点,没有(),没有除号,没有减号 (四个操作符与二个有很大分别吗?)题目来自 -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (335 bytes) () 01/06/2016 postreply 22:23:18

没有很大分别,无非就是多花些时间(穷举出来)而已。不用穷举,虽然容易,但是什么时候完成就不知道了。。。 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (1435 bytes) () 01/07/2016 postreply 07:46:37

你这个搞复杂了。题目是要你往空白里面填入运算操作符。我事先没讲清楚。只用+与x。后面这个数可能会变。如: -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (238 bytes) () 01/07/2016 postreply 10:51:57

这个问题答案。。。 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (434 bytes) () 01/07/2016 postreply 19:15:26

还是不对啊,你把人家数字的顺序打乱了?这不叫往里面填运算符:=) -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (0 bytes) () 01/07/2016 postreply 19:24:22

刚才疏忽了。 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (0 bytes) () 01/07/2016 postreply 19:25:12

好厉害,没有考倒你啊!求代码! -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (169 bytes) () 01/07/2016 postreply 19:27:13

代码在这里: -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (1387 bytes) () 01/07/2016 postreply 19:45:35

好精炼的代码,多少年的功力?再赞!以后代码问题就找你了! -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (0 bytes) () 01/07/2016 postreply 21:37:03

没问题!我们一起共同进步。。。 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (0 bytes) () 01/08/2016 postreply 05:39:43

这个算吗? (1*2+3-4/5/6+7)*9-8 = 100? 把0去掉了,+-×/各两个 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (0 bytes) () 01/07/2016 postreply 05:46:34

电脑还是对这种开放型的问题不行,答案不对! -hot_powerz- 给 hot_powerz 发送悄悄话 hot_powerz 的博客首页 (0 bytes) () 01/07/2016 postreply 10:57:05

超强!略微简练一些的代码 -chirolike- 给 chirolike 发送悄悄话 chirolike 的博客首页 (1296 bytes) () 01/06/2016 postreply 13:42:29

的确简洁多了,赞! -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (0 bytes) () 01/06/2016 postreply 18:42:05

为嘛不能(5)? -slow_quick- 给 slow_quick 发送悄悄话 slow_quick 的博客首页 (0 bytes) () 01/06/2016 postreply 21:50:45

(5) 理论上可以,也不影响计算,但是一般不写这样的算式,因为没有意义,(5) = 5。当然了,规则是自己定义的。 -在城里- 给 在城里 发送悄悄话 在城里 的博客首页 (0 bytes) () 01/07/2016 postreply 05:32:10

记得从前读过C/C++什么书,有简单计算器的程序。把那些符号序列穷尽一下,让程序去分析那些有syntax error,那些能算就 -slow_quick- 给 slow_quick 发送悄悄话 slow_quick 的博客首页 (0 bytes) () 01/11/2016 postreply 15:25:18

请您先登陆,再发跟帖!

发现Adblock插件

如要继续浏览
请支持本站 请务必在本站关闭/移除任何Adblock

关闭Adblock后 请点击

请参考如何关闭Adblock/Adblock plus

安装Adblock plus用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”