什么是rho形序列?

时间:2016-01-02 14:03:55

标签: algorithm function cycle-detection

我在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形状,并试图去一个与它不相邻的元素。然而,我并不了解序列的表示或其用法。

如果有人能用一个例子来解释它,那就太好了。

3 个答案:

答案 0 :(得分:5)

字面意思是希腊字母rho的形状,即“ρ”。我们的想法是,如果您将值映射为图形,则可视化表示形成此形状。您也可以将其视为“d”形或“p”形。但请仔细查看字体并注意到线条或杆稍微延伸过环,而不是在rho上。 Rho是对形状的更好描述,因为循环永不退出;也就是说,不应该有任何线路通过循环。那些和数学家都喜欢希腊字母。

您有一些不重复的值;这些形成一条线或“字母”的“词干”。然后,这些值进入一个循环或循环,形成一个圆圈或“字母”的“循环”。

例如,考虑repeating decimals 7/12(0.5833333 ...)和3227/55(5.81441441444 ......)。如果您将序列设为数字中的数字,则可以将这些数字绘制成rho形状。我们来看看3227/55。

  • x0 = 5
  • x1 = 8
  • x2 = 1
  • x3 = 4
  • x4 = 4
  • x5 = 1 = x2
  • x6 = 4 = x3
  • x7 = 4 = x4
  • ...

你可以像这样绘制图形:

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