蓝桥试题——Use MMA to solve~
蓝桥试题——Use MMA to solve~

蓝桥试题——Use MMA to solve~

在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中 包含数字 2?

Total[Cases[ContainsAny[IntegerDigits[#], {2}] & /@ Range[1, 2020], True]]

结果: 563 True

填充网格

小蓝在一张无限大的特殊画布上作画。
这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。 小蓝在画布上首先点了一下几个点:(0,0), (2020,11), (11,14), (2000,2000)。 只有这几个格子上有黑色,其它位置都是白色的。
每过一分钟,黑色就会扩散一点。具体的,如果一个格子里面是黑色,它 就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色 (如果原来就是黑色,则还是黑色)。
请问,经过 2020 分钟后,画布上有多少个格子是黑色的。

BetterGraphExpand[pt_] := {
DeleteDuplicates[
Partition[
Flatten[{{#[[1]] – 1, #[[2]]}, {#[[1]] +
1, #[[2]]}, {#[[1]], #[[2]] – 1}, {#[[1]], #[[2]] + 1}} & /@
pt[[1]]], 2]]
}
cp = Compile[x,
Nest[BetterGraphExpand, {{{0, 0}, {2020, 11}, {11, 14}, {2000,
2000}}}, x]]
pts = cp[2020]

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据