为了庆祝这个岛的下一个创立者节,每个灯塔都安装了彩色过滤器(紫红色、紫红色和海蓝宝色*)。所有灯塔开始运作,他们的紫红色过滤器,他们都在同一个颜色周期: FCA,FCA,.每个灯塔在每次眨眼后,无论是长或短,都会更换其颜色滤镜。此外,每次代码开始时,每一次都会重新开始这个循环。
除了添加颜色外,灯塔的操作与原来的挑战闪烁的灯塔中的操作完全相同。
挑战:输入和最初的挑战是相同的:每个灯塔的代码都是以(仅)L和S的字符串的形式。
输出现在由四行组成,每色一行,再加上一条“总计”行。上线的总次数为0.n紫红色灯同时亮着,第二线为紫红色,第三线为海蓝宝。因此,在第二行中的第三个数字是总秒,正是两个字符灯同时亮着,而不管在这些秒内其他颜色是什么。第四行具有0.n个灯的总数,无论颜色如何(这一行与原始挑战的输出相同)。
不幸的是,灯塔操作主管Marie报告了过滤器测试过程中出现的故障。由于某种原因,如果所有灯塔在开始运作后(输出第3行的最后一项)同时同时闪烁海蓝宝黄5秒(输出第3行的最后一项),则电子滤色系统立即失效,所有灯塔都会在剩下的一小时内继续其闪烁白光的时间表。此故障不会影响最后一个“总计”输出行,但可能会影响前三行,每个行的总秒数仅限于筛选器工作的期间。
规则这些规则在其他方面与最初的挑战是相同的。以字节为单位的最短代码获胜。
为了澄清起见:最后一行的第一个数字是所有灯塔不分颜色关闭的总秒数。最后一行的总数应为3600秒,与最初的挑战相同,即1小时的灯塔操作。每一行1至3的和应匹配,无论它们是否共计3600。这三排在出故障后停止计数。
故障系统
(Input -> Output)
['SLS', 'SLL', 'SSS', 'LSL'] ->
[1178, 360, 90, 40, 5]
[998, 470, 165, 40, 0]
[1178, 165, 270, 55, 5]
[1125, 890, 652, 590, 343]
['SLS', 'LLS', 'SSSL'] ->
[2121, 1158, 288, 33]
[2155, 1219, 226, 0]
[2957, 579, 64, 0]
[1254, 1125, 577, 644]
(The color schedules, in seconds, for the 3 lighthouses in test case #2 case are:
F-CCC-A------- [repeat]
FFF-CCC-A------- [repeat]
F-CCC-A-FFF------- [repeat]
each lighthouse begins the FCA color cycle anew each time its code repeats.)
['SSSLLLSSS', 'LLSSSLLSSLS', 'LSLSLL', 'SSLLL', 'SLLSSSL'] ->
[1334, 1115, 548, 223, 57, 8]
[1560, 1047, 463, 163, 44, 8]
[1591, 950, 525, 184, 30, 5]
[484, 653, 657, 553, 553, 700] *灯塔岛国旗的颜色,由在阿洛西乌斯酒馆和礼品店举行的公民投票选出。
**玛丽对此感到非常糟糕,并承诺在方正节前把事情做好。
发布于 2021-07-17 19:13:06
基于我的回答对以前的挑战。
ε€C9%Å10.ý˜7Å0«Dη_O3%>*60n∍}øÐ3QP.¥5‹Ï3LδQøs<dªεOZÝ¢ε€C9%Å10.ý˜7Å0« 60n∍} # see my previous answer
Dη # push all prefixes of the signal
_O # count the number of 0's (how often the signal was off)
3%> # modulo 3, add 1
* # multiply each value in the signal list (0 or 1) with this
# this replaces all 1's with the correct color: (1=F, 2=C, 3=A)
øÐ # tranpose the list (n × 3600 -> 3600 × n) and push the result three times
3QP # on the first copy, check for each second if all lighthouses are aquamarine
.¥ # take the sums of prefixes of this list,
# this keeps track of how many times all lighthouses were aquamarine so far
5‹ # for each second: is this value less than 5?
Ï # take the lighthouse for all seconds where this was true
3L # push the range [1, 2, 3]
δQø # for each of those numbers (colors) compare the lighthouse colors to it
s<dª # append a boolean matrix of activations in any color (>0)
ε # for each of those 4 boolean matrices:
O # sum each row / second
ZÝ # get the range [0 .. maximum]
¢ # and count all these values它的前半部分可用于可视化颜色图案:在网上试试!
https://codegolf.stackexchange.com/questions/231516
复制相似问题