整数とブラックボックス関数を指定すると、で定義されたシーケンス内のの固定小数点を見つけます。x1
f: ℤ → ℤ
f
xk+1 := f(xk)
詳細
値
x
はf
ifの固定小数点と呼ばれますx = f(x)
。たとえば
f(x) := round(x/pi)
、開始点がある場合、get 、then 、then 、およびfinally が返されます。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メタポストでブラックボックス関数の入力にデフォルトがある任意の言語を使用できます。ご使用の言語にそのようなデフォルトがない場合は、ブラックボックス関数の定義の意味で自由に追加して、その定義に提案をリンクしてください。また、それらに投票することを忘れないでください。
例
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);
。それは別の挑戦に値するかもしれません。