给定一个整数和一些黑盒函数,可以在定义的序列中找到的固定点。x1
f: ℤ → ℤ
f
xk+1 := f(xk)
细节
值
x
是f
if 的固定点x = f(x)
。例如,如果
f(x) := round(x/pi)
和我们有一个起点,那么我们得到,然后,然后,最后,这意味着提交应该返回。x1 = 10
x2 = f(x1) = f(10) = 3
x3 = f(x2) = f(3) = 1
x4 = f(x3) = f(1) = 0
x5 = f(x4) = f(0) = 0
0
- 您可以假设生成的序列实际上包含一个固定点。
- 您可以使用本机类型代替
ℤ
。 - 您可以使用在标准IO meta post中输入黑盒功能默认设置的任何语言。如果您的语言没有这样的默认设置,请按照黑盒函数的定义随意添加一个,并确保在该定义中链接您的建议。也不要忘记对它们进行投票。
例子
f(x) = floor(sqrt(abs(x)))
0 -> 0, all other numbers -> 1
f(x) = c(c(c(x))) where c(x) = x/2 if x is even; 3*x+1 otherwise
all positive numbers should result in 1,2 or 4 (Collatz conjecture)
f(x) = -42
all numbers -> -42
f(x) = 2 - x
1 -> 1
~Nƭ⁻Ç$¿
,类似于(伪代码)for x in [0, -1, 1, -2, 2, -3, 3, -4, 4, ...]: if (x == f(x)): break; print(x);
。那可能值得另一个挑战。