【制作过程】

更新于 2026年10月13日 版权声明
【制作过程】

接下来我们应用累次迭代的思想来讲解网络画板赛第83期赛题的制作过程.

图示

图48 调整变量的初始值

如图48,网络画板赛第83期赛题要实现的效果:n个灯泡并列排成一排,每个灯泡对应的编号从1到n,一开始每个灯泡都关闭,拉第1次开关,所有编号能被1整除的灯泡都改变原来的开关状态(即原来开的变关,原来关的变开),而原来这些灯泡都是关着的,所以拉第1次开关的时候,所有灯泡全部点亮.接着拉第2次开关,所有编号能被2整除的灯泡都改变原来的开关状态,再拉第3次开关,所有编号能被3整除的灯泡都改变原来的开关状态,…….如此操作,一直到拉第n次开关,此时只有第n个灯泡的编号能够被n整除,则只有第n个灯泡的状态改变.至此,操作全部结束.

首先,这n个灯泡肯定要迭代得到的,如果不需要用到灯泡的编号,那么迭代的时候只用点来作为原象就可以生成这n个灯泡的迭代象.但是根据题意,每个灯泡的开关状态和这个灯泡的编号有关,所有生成这n个灯泡的迭代象必须要用变量作为原象来进行迭代.在这里,我们用变量t来控制n个灯泡的编号.

接着,最难的问题来了,要生成n个灯泡的迭代象很容易,但是如何能够让不同编号的灯泡的开关状态用拉开关的次数(在这里用变量m表示)来控制呢?

我们可以这样构造一个父子链:由变量t→点A(由变量t控制)→点B(由变量k控制)→迭代象(取最终迭代象).按照这个思路,步骤如下:

1.我们先用变量t绘制点A(如图49).

图示

图49 新建变量和测量计算以及绘制点A

2.接着就是利用点A和变量k来控制生成点B,那么应该如何做呢?这取决于我们想要让点B实现怎样的效果.在这里,点B的作用是用来控制某个编号的灯泡显隐的,而灯泡的显隐可以用点的两种效果来代替:一种是点存在,一种是点不存在.所以在绘制点B的时候,只要平移点A,如果在这个位置上的灯泡是点亮的,那么就把点A平移(0,0)的位置(也就是原地不动,但是该点还是存在的),如果在这个位置上的灯泡是关闭的,那么就把点A平移一个无穷大,比如(0,∞)(注:如图50,为了让读者看到点A和点B这两个点,将点B的属性最后“垂直”一栏的表达式改成了m3,实际上应该为0/m3).

图示(https://www.daowen.com)

图50 平移点B

3.对变量k进行迭代,生成点B的最终迭代象(如图51).

图示

图51 对变量k进行迭代

4.以点A为圆心,0.3个单位为半径作圆(如图52).

图示

图52 以点A为圆心,0.3个单位为半径作圆

5.对变量t进行迭代,生成点B的最终迭代象的迭代象,并隐藏原来的点和圆(如图53).

图示

图53 对变量t进行迭代

至此,本赛题制作完毕.

✍AI写作