我在Saurabh Kr Vats在http://www.careercup.com/question?id=14990323
提出的解决方案中遇到了这个问题。他说:
# Finally, the sequence could be "rho-shaped." In this
# case, the sequence looks something like this:
#
# x_0 -> x_1 -> ... x_k -> x_{k+1} ... -> x_{k+j}
# ^ |
# | |
# +-----------------------+
#
# That is, the sequence begins with a chain of elements that enters a cycle,
# then cycles around indefinitely. We'll denote the first element of the cycle
# that is reached in the sequence the "entry" of the cycle.
我在网上搜索了cycle detection。当我们到达一个循环的开始/结束时,我可以看到形成的rho形状,并试图去一个与它不相邻的元素。然而,我并不了解序列的表示或其用法。
如果有人能用一个例子来解释它,那就太好了。
答案 0 :(得分:5)
字面意思是希腊字母rho的形状,即“ρ”。我们的想法是,如果您将值映射为图形,则可视化表示形成此形状。您也可以将其视为“d”形或“p”形。但请仔细查看字体并注意到线条或杆稍微延伸过环,而不是在rho上。 Rho是对形状的更好描述,因为循环永不退出;也就是说,不应该有任何线路通过循环。那些和数学家都喜欢希腊字母。
您有一些不重复的值;这些形成一条线或“字母”的“词干”。然后,这些值进入一个循环或循环,形成一个圆圈或“字母”的“循环”。
例如,考虑repeating decimals 7/12(0.5833333 ...)和3227/55(5.81441441444 ......)。如果您将序列设为数字中的数字,则可以将这些数字绘制成rho形状。我们来看看3227/55。
你可以像这样绘制图形:
5 -> 8 -> 1
^ \
/ v
4 <- 4
你可以看到这形成了“ρ”形状。
答案 1 :(得分:1)
代码段中的注释看起来不完整。在上下文中,我认为
# x_0 -> x_1 -> ... x_k -> x_{k+1} ... -> x_{k+j}
应该是
# x_0 -> x_1 -> ... x_k -> x_{k+1} ... -> x_{k+j} = x_k
这会使j
成为周期的长度,而x_0 -> x_1 -> ... -> x_{k-1}
会使&#34;尾部&#34;在你到达尾部附着的圆之前的序列。
3n+1
问题提供了一个很好的例子。这是从种子数开始的位置,该种子数是一个正整数,如果是偶数则将其除以2或将其除以3,如果是奇数则加1。使用种子5,这给出了序列
5 -> 16 -> 8 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> ...
可以写成
5 -> 16 -> 8 -> 4
/ \
1 <- 2
哪种看起来像是已经倒下的rho。
Collatz Conjecture是所有种子都产生rho形序列,最终形成长度为3的相同周期。
答案 2 :(得分:0)
如果序列变成一个循环,那么在初始序列满足循环的位置,有一个值可以通过两种方式获得,无论是从初始序列还是从循环开始。
我不知道这是否是一个有代表性的例子,但假设数组保持{1,2,3,1,0}而你从0开始。然后你最终得到0-&gt; 1 - &gt; 2-> 3-> 1-> 2-> 3-> 1 ...并且您发现f(0)= f(3)= 1