← 完整题目索引

PROJECT EULER · #0941

德布鲁因的密码锁

de Bruijn's Combination Lock

仅题目 · 待解原题 ↗

de Bruijn 有一把带 k 按钮的数字密码锁,编号为 0k1,其中 k10
当最后按下的 n 按钮与预设组合匹配时,锁就会打开。

不幸的是他忘记了密码。他创建了这些数字的序列,其中包含长度 n 的所有可能的组合。然后按此顺序按下按钮,他就一定能打开锁。

考虑包含所有可能的数字组合的所有可能长度最短的序列。
C(k,n) 表示其中按字典顺序最小的一个。

例如,C(3,2)= 0010211220。

通过 a0=0 定义序列 an
an=(920461an1+800217387569)mod1012 for  n>0 将每个 an 解释为 12 数字组合,为任何少于 12 数字的 an 添加前导零。

给定一个正整数 N,我们感兴趣的是组合 a1,,aNC(10,12) 中出现的顺序。
pn 表示编号为 1,,N位置,其中 an 出现在 a1,,aN 之外。定义F(N)=n=1Npnan

例如,在 a2=696996536878 之前输入组合 a1=800217387569。因此: F(2)=1800217387569+2696996536878=2194210461325 您还获得了 F(10)=32698850376317

查找 F(107)。以 1234567891 为模给出您的答案。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。