发布时间:2016-04-04 08:54 我来说说 我要投稿
作者:万精油 新浪微博 @万精油墨绿
Pandigital算式是指在把0,1,2,3,4,5,6,7,8,9这10个数字,通过一定组合或者计算,计算出自己想要的“有趣”的结果。本文中万精油老师就show了一把Pandigital算式计算2016,不仅满足Pandigital算式的条件,而且还是按顺序来的。
在这里,我们哆嗒数学网的小编谨以此文向大家恭贺新年。祝大家来年万事如意。
下文中 x^y 表示 x的 y次方。
每年年底我都发一张自制的新年倒计时钟。中间是用数字0到9加上数学运算(加减乘除及指数运算)凑出新年。圆周边是倒过来,数字从9到0。新年倒计时的时候大家都念9,8,7,6,5,4,3,2,1,0(一般用欢呼声音代替0)。所以我把这个图叫做新年倒计时钟。
(时钟地址见: http://mp.weixin.qq.com/s?__biz=MzA5Mzc4NDYxNQ==&mid=402659314&idx=1&sn=0d68505d8d1b219f2c03d1b2bc41a861)
我过去几十年每年都要搞这些等式。开始硬凑,后来学会用计算机来搜。今年的解比较有趣。有一个竟然没用到加减号,也没有数字连接,完全是乘与除。归因于2016没有大于7素数因子。0 + 1^23 × 4 × 567 × 8 ÷ 9 = 2016。另一个解也很有趣:98 × 76 - 5432 × 1 + 0 = 2016,竟然有4位数。下面是今年其它的一些解:
0 + 1 × 2 × 34 × 5 × 6 - 7 - 8 - 9 = 2016
0 + 1 ÷ 2 × 3 × 4^5 ÷ 6 × 7 ÷ 8 ×9 = 2016
0 + 1 + 2 - 3 + 4 × 567 ×8 ÷ 9 = 2016
0 + 1^23 × 4 × 567 × 8 ÷ 9 = 2016
9 × 8 - 7 + 6^5 ÷ 4 + 3 ×2 + 1 + 0 = 2016
9 + 8 × 7 + 6^5 ÷ 4 + 3 × 2 + 1 + 0 = 2016
98 + 7 × 6 + 5^4 × 3 + 2 - 1 + 0 = 2016
9 × 8 + 7 + 6^5 ÷ 4 - 3 × 2 - 1 + 0 = 2016
98 + 7 + 6^5 ÷ 4 - 32 - 1 + 0 = 2016
98 × 76 - 5432 × 1 + 0 = 2016
98 × 76 - 5432 ÷ 1 + 0 = 2016
98 × 76 - 5432^1 + 0 = 2016
9 + 87 + 6^5 ÷ 4 - 3 - 21 + 0 = 2016
9 × 8 + 7 × 6^5 ÷ 4 × 3 ÷ 21 + 0 = 2016
三十年前刚开始写这个程序的时候,只会C语言,写起来相当麻烦,因为要自己写一个Parser去验算每一个可能的等式。后来学会MATLAB以后,就简单多了。下面的MATLAB代码只有7行,可以搜索所有解。
s = '1 2 3 4 5 6 7 8 9';
o = '+-*/^ ';
d = o(fullfact(6*ones(1,8))');
for i = 1:6^8
s(2:2:16) = d(:,i); b = s(s~=' ');
if eval(s(s~=' ')) == 2016, disp([s(s~=' ') ' = 2016']); end
end
其实,我还写过一个用递归方法来找解的程序,也非常简单,但代码的思路就不是那么显而易见,我有个朋友是R的高手,他用R语言写了一个搜解程序,更短。后来我与他较劲,越写越短,动用各种复杂的功能,结果是一层套一层的映射函数,只有两行。但程序太丑,这里就不贴了。
关注微信:DuoDaaMath每天获得更多数学趣文
《Pandigital算式恭贺2016》由河南新闻网-豫都网提供,转载请注明出处:http://edu.yuduxx.com/xiaoyuan/368513.html,谢谢合作!
豫都网版权与免责声明
1、未经豫都网(以下简称本网)许可,任何人不得非法使用本网自有版权作品。
2、本网转载其他媒体之稿件,以及由用户发表上传的作品,不代表本网赞同其观点和对其真实性负责。
3、如因作品版权和其它问题可联系本网,本网确认后将在24小时内移除相关争议内容。