Google Foobar游戏

朱利奥·S·肯德迪

因此,这可能是最愚蠢的问题,但是英语不是我的母语,并且我似乎无法理解该语言的上下文。

嘿,我已经做到了!

指挥官Lambda使用自动算法将小兵随机分配给任务,以使小兵保持脚尖。但是您已经注意到该算法的一个缺陷-它最终会自行循环,因此,它不会像迭代那样分配新的奴才,而是陷入了一个值循环中,从而使相同的奴才最终可以完成并执行相同的任务。再次。您认为向Lambda指挥官证明这一点将为您的下一次晋升提供依据。

您已经确定该算法具有以下过程:

  1. 以随机的奴才ID n开头,n是基数b中长度为k的非负整数
  2. 将x和y定义为长度为k的整数。x具有降序的n位数,而y具有升序的n位数
  3. 定义z = x-y。如果需要,在z上添加前导零以保持长度k
  4. 分配n = z以获得下一个奴才ID,然后回到步骤2

例如,给定的minion ID n = 1211,k = 4,b = 10,然后x = 2111,y = 1112和z = 2111-1112 =0999。那么下一个minion ID将为n = 0999,并且算法再次迭代:x = 9990,y = 0999和z = 9990-0999 = 8991,依此类推。

取决于n,k(源自n)和b的值,算法在某个点到达一个周期,例如达到一个恒定值。例如,从n = 210022,k = 6,b = 3开始,该算法将达到值[210111、122221、102212]的周期,并且无论继续重复多少次,算法都将停留在该周期中。从n = 1211开始,例程将达到整数6174,并且由于7641-1467为6174,因此无论迭代多少次,该例程都将保持该值不变。

给定一个minion ID作为字符串n,代表在基数b中长度为k的非负整数,其中2 <= k <= 9和2 <= b <= 10,编写一个函数solution(n,b),该函数返回长度为以上算法的结束循环从n开始。例如,在上面的示例中,solution(210022,3)将返回3,因为在基数3中完成时在102212上进行的迭代将返回210111。如果算法达到常数,例如0,则长度为1。

我的问题是:写一个函数solution(n,b)返回上面以n开头的算法的结束周期的长度是什么意思?从字面上看没办法。任何帮助,将不胜感激。

吉拉德·巴坎(Gilad Barkan)

如果您遵循算法“处理”指令(步骤1至4),则n每次都会为其分配一个新值(一个棘手的部分可能正在考虑数字基数)。现在想象一下,我们要统计到目前已采取了多少步骤,并n记录了每一次n得到的结果。根据描述,我们最终将遇到n我们已经看到的。任务是告诉n我们已经看到的步骤开始执行了多少步骤,直到再次看到为止-这是一个“周期长度”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章