力源分享 http://blog.sciencenet.cn/u/chenkuifu

博文

猜猜你那天出生

已有 1196 次阅读 2018-3-8 07:55 |系统分类:教学心得

上面是5张表。你看着5个表,告诉我那张表有你的出生日期,哪张表没你的出生日期,那么就可以“猜出”你的出生日期,神奇不神奇?


我有心算的办法,但是为了训练你们的Mathematica的列表知识点,下面采用列表办法来“猜”。


首先把上面5个列表产生出来

L1=Range[16,31] ;

L2=Join[Range[8,15],Range[24,31]] ;

L3={4,5,6,7,12,13,14,15, 20,21,22,23,28, 29,30,31} ;

L4={2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31} ;

L5=Table[2*i+1,{i,0,15}] ;

LT=Range[1,31] ;


L1和L5的规则都很强,所以可用Range和Table来产生;L2是由两个规则列表串成的(Join为串在一起的操作);L3和L4的规则不明显,所以直接写表元素,然后放在{ }里面。LT是总表。


比如:你告诉我L1,L3,L5中有你的生日,而L2和L4中没有,那么生日是多少号呢?


因为L2和L4中没有,所以在L2和L4的补集中肯定有,Mathematica计算补集是Complement函数。L2和L4的补集就是Complement[LT,L2,L4]。


于是你的生日便可以这样”猜”出来(Intersection是求交集的函数)


Intersection[L1, L3, L5, Complement[LT, L2, L4]]


得到{21},即你的生日是21号。


小朋友们,你们亲自试试“猜”的灵不灵吧?


公众号里更精彩



http://blog.sciencenet.cn/blog-510768-1102806.html

上一篇:Dog, dogs, a dog and the dog-这么多“狗”!怎么用?
下一篇:物理学家抢了化学诺贝尔--纪念Kohn诞辰95周年

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2018-9-19 22:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部