Eug*_*Loy 3 algorithm math search combinatorics
有10个按钮.如果按正确顺序按下这些按钮可以解锁(按顺序按5次).按下每个按钮会触发解锁检查.
例如:"密码"是123456,我按下按钮0 1 2 3 4 5 6我从第6次按下按钮解锁.
我需要设计算法,以最有效的方式尝试所有可能的组合(即应按下最少量的按钮).
我可以将按钮编号按顺序解释为数字和按下按钮的数字作为数字位置,然后尝试所有99999组合以尝试解锁,但我觉得有更有效的算法可以做到这一点.
有什么我可以做的来优化这个搜索?
要优化对锁的暴力攻击,可以使用De Bruijn序列.
该序列可用于缩短对类似PIN的密码锁的暴力攻击,该密码锁没有"输入"密钥并接受输入的最后n个数字.例如,带有4位代码的数字门锁将具有B(10,4)解决方案,长度为10,000.因此,只需要最多10,000 + 3 = 10,003(因为解决方案是循环的),需要按下来打开锁.分别尝试所有代码需要4×10,000 = 40,000次按下.