我在看下面的文章,不明白第四段背后的逻辑
你有N盏灯和4个开关。第一个开关切换所有灯,第二个开关切换偶数灯,第三个开关切换奇数灯,最后一个开关切换灯1,4,7,10,…是的。
给定灯的数量n、按钮按下次数(最多10000次)和一些灯的状态(例如灯7熄灭),输出灯可能处于的所有状态。
天真地说,每按一次按钮,你就必须尝试4种可能性,总共4^10000(大约10^6020),这意味着你无法完成搜索(这个特定的算法会利用递归)。
注意到按按钮的顺序无关紧要,这个数字就会降到大约10000^4(大约10^16),仍然太大,无法完全搜索(但肯定是接近10^6000倍)。
但是,按两次按钮和不按两次按钮是一样的,所以您真正需要检查的是按0或1次按钮。这仅仅是2^4=16种可能性,肯定有很多迭代可以在时间限制内解决。
当订单不重要时,总配置的数量是10000^4?
最佳答案
笔者规定,按键次数以10000次为限:
按按钮次数(最多10000次)
如果你知道按按钮的顺序无关紧要,但没有别的,那么重要的是每个按钮被按下了多少次四个按钮中的每一个都有10000个可能,所以总共大约有10000^4个。(当然,实数要小一点,因为你不能,例如,每按10000次所有四个按钮。)
关于algorithm - 蛮力排列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10361649/