灵机一动 | 第116期 不报七(答案)

liftword3周前 (02-08)技术文章15

本栏目精选刊登题友有价值的解答,供大家学习交流之用,欢迎各位题友积极参与!任何时候在公众号中回复期数“第116期”或题目名称“不报七”可查看本期问题及答案!

NO. 116

不报七

一队士兵排队报数。他们的长官在家族中排行第七,所以不让士兵们报“七”和所有带“七”的数字,因此6的后面是8,16后面是18,69的后面是80。最后一个士兵报的数是2048。总共有多少名士兵?

来源:Areteem魔法学园每日一题

问题分析解答

本期问题题友们的解答非常精彩,大家各显神通,给出了好几种解法,更有题友利用“九进制”来解,大获好评,请看“题友解答精选”。

题友解答精选

一、最简单的解法◎题友 @枯木的守望 的解答:

考虑1到1999和2000到2048两段。 1到1999,不含7的数有2×9×9×9-1=1457个(减1是去掉0); 2000到2048有49-5=44个。 综上,一共有1501个。

二、容斥原理◎题友 @Mr.胡xb Right的解答:

考虑0001到2048 找出不含7的数,记S为上面2048个数构成的集,A、B、C分别为S中个位、十位、百位上出现了数字7的集。则含7的数集可以用 A∪B∪C 表示,易知 |A|=205,|B|=200,|C|=200,|A∩B|=20,|B∩C|=20,|A∩C|=20,|A∩B∩C|=2,根据容斥原理 |A∪B∪C|=|A|+|B|+|C|-|A∩B|-|B∩C|-|A∩C|+|A∩B∩C|=547,故士兵数为2048547=1501。

◎题友 @毕盛的解答:

找出带7的数字个数就行。2000以后有5个,主要看之前的个数,这是个排列组合问题。百位数带7的个数:2×10×10=200;十位数带7的个数:2×10×10=200;个位数带7的个数:2×10×10=200;百十位数都带7的个数:2×10=20;百个位数都带7的个数:2×10=20;十个位数都带7的个数:2×10=20;百十个位数都带7的个数:2。那么2000之前所有带7的个数:200+200+200-20-20-20+2=542。士兵数目就是2048-542-5=1501。

三、进制法——最有创意的解法◎题友 @mathlu的解答:

进制换算。九进制里的标准符号系统A:“0,1,2,3,4,5,6,7,8”,用符号系统B:“0,1,2,3,4,5,6,8,9”表示。“2048”是在符号系统B下的表示,化成标准的符号系统A的表示是“2047”,而“2047”实际对应的十进制数是2*93+0*92+4*91+7*9o=1501,即实际的士兵数。该方法可以用于一般的情况。

四、分段计数法◎题友 @一只巴掌 的解答:

100以内有10+9=19个带7的数,1000以内有100+19*9=271个带7的数,2000以内有271*2=542个带7的数,余下48里有5个,总的带7的数有542+5=547个,故士兵数为2048—547=1501。

五、程序法(Python)◎题友 @Fred Liu 的解答:

python3.5.1 a = For i in range(1,2049): if str("7") in str(i): a.append(i) Print(2048-Len(a)) Output:1501

六、Excel法——最偷懒的方法◎题友 @阿拉丁神灯 的解答:

还有个偷懒的不用数学思维的方法:在excel中从1拉到2048,筛选文本不含7的,再看剩下数字多少个。

Excel截图

本期答案整理:子曰 编辑:子曰

感谢各位题友的积极参与,下期再见!

好玩的数学

微信号:mathfun

好玩的数学以数学学习为主题,以传播数学文化为己任,以激发学习者学习数学的兴趣为目标,分享有用的数学知识、有趣的数学故事、传奇的数学人物等,为你展现一个有趣、好玩、丰富多彩的数学世界。

相关文章

概率分布与编程:二项式分布、泊松分布的原理,Python3如何实现

在说二项式分布之前,先来复习一下排列组合的概念,尤其是组合(Combination) C。排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做...

面对2000笔金额记录的凑数最优问题,你学了python竟然束手无策?

好不容易学了一门编程语言 Python,又懂一点 Excel 操作,感觉自己无所不能了。直到有一天遇到了凑数最优问题,看似很简单,但始终无法解决。凑数问题:在很多数值数据当中,不限制个数(或一些限制条...

Python常用算法学习(7) 动态规划,回溯法(原理+代码)-最全总结

引言:从斐波那契数列看动态规划  斐波那契数列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1)练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项...

按照概率学原理,你这牌一看就胡不了

撰文 比邻星春节假期,独乐乐不如众乐乐。如果要选择一种声音代表新春佳节的团聚,除了噼里啪啦的鞭炮、杯盏相碰的清脆,一句“三缺一”和麻将桌上哗啦啦的搓麻声必定占有一席之地。麻将在不同段位的玩家眼中代表着...

原理 + 代码|手把手教你用Python实现智能推荐算法

推荐系统将成为未来十年里最重要的变革,社会化网站将由推荐系统所驱动。 --- John Riedl明尼苏达大学教授前言智能推荐和泛的营销完全不同,后者是将产品卖给客户作为最终目标;而智能推荐是以“客户...

林俊杰的元宇宙房地产塌房,周杰伦站台的NFT稀碎

萧箫 发自 凹非寺量子位 | 公众号 QbitAI元宇宙房产和NFT暴跌,明星也拦不住。林俊杰花50多万元在元宇宙买下的三块虚拟地产暴降80%,跌到9万多元。这些地产如今访问量几乎为零,周围也完全没有...