【发布时间】:2012-08-31 08:18:02
【问题描述】:
有 10 个按钮。如果按正确的顺序(按顺序按 5 次),这些按钮可以解锁。每次按下按钮都会触发解锁检查。
示例:“密码”是 123456,我按下按钮 0 1 2 3 4 5 6 我从第 6 次按下按钮解锁。
我需要设计一种算法,以最有效的方式尝试所有可能的组合(即应按下最少数量的按钮)。
我可以将按钮编号解释为数字,按顺序将按下按钮的编号解释为数字位置,然后尝试所有 99999 种组合以尝试解锁,但我觉得有一种更有效的算法可以做到这一点。
我可以做些什么来优化这个搜索吗?
【问题讨论】:
-
不 - 详尽搜索是关于搜索所有可能性。您的解决方案似乎没有冗余(没有检查两次组合)并且足够简单。使用整数也很有效。
-
如果 11223 是一个有效的组合,那么可能是一种优化。如果不是 - 您可以尝试使用重复数字修剪数字。
-
@amit 112233 是一个有效的组合。
标签: algorithm math search combinatorics