鉴于故事问题:
一串总共150盏灯的圣诞灯(可能是无限的)
灯的两个可能值0 =关或1 =开
如果灯最初全部为0:
Person1将所有灯都变为1:
Person2将灯2,4,6,8,...... 150转为0:
Person3将灯3,6,9,12 ... 150转为1:
Person4将灯光4,8,12,16 ... 150转为0:
继续为150人。
我如何在excel公式中表达这一点?
答案 0 :(得分:0)
这需要一种迭代方法。转到文件|选项|公式,将工作簿计算设置为手动,勾选启用迭代计算并将最大迭代次数设置为1。
使用填充系列在C2-C151中设置灯光编号1-150。
将以下公式放在B2中以遍历人员编号: -
=IF(A2,0,B2+1)
在D2中放入以下公式,以确定C2中的灯是否会打开或关闭(奇怪的人总是打开,即使是男人也会关闭,但仅适用于与人数完全相同的灯): -
=IF(A$2,FALSE,IF(MOD(C2,B$2)=0,ISODD(B$2),D2))
将公式从D3复制到D151。
我还设置了一个公式来显示文本字符串" ON"或" OFF"在E2中,但这是可选的: -
=IF(D2,"ON","OFF")
要初始化它(可能有一种更简洁的方法),键入“' 1'在A2。
应该有一个'计算'屏幕底部的按钮。按此按钮应设置所有指示灯' OFF'
输入' 0'在A2。现在,每次按“计算”键。它将模拟人数在B2中显示的人的行为。
以下是第三人有一个去的方式: -
如果你想看看所有150个人去过后的样子,请回到File |选项|公式并将Maximum Iterations设置为150。
像以前一样重置它并计算。
现在看起来像这样: -
灯光交替 - 这是你所期望的吗?对于所有均匀的灯光,最近的动作是由一个普通人执行的,所以它关闭了,反之亦然。
或者你可能正在考虑Matt Parker的书“第四维中要做的事情”中所提出的问题。在这里,一系列防护装置可以使用相同的约束来锁定和解锁单元门,除了它们总是将0(锁定)变为1(未锁定)和1变成0并且结果是保持打开的是那些方数1,4,9,16 ......
在这种情况下,D栏中的公式为
=IF(A$2,FALSE,IF(MOD(C2,B$2)=0,NOT(D2),D2))
它看起来像这样: -