[moved from beginners] > 1-е: 10 = 2 > 2-е: 100 = 4 > 3-е: 110 = 6 > 4-е: 1000 = 8 > 5-е: 1100 = 12 > 6-е: 1110 = 14 > 7-е: 10000 = 16 > 8-е: 11000 = 24 > ... > > Это табличное задание F(n) > А формула какая?
x(n) = int((sqrt(8 * n + 1) + 3) / 2)
int - целая часть
y(n) = (x(n) + 1) * x(n) / 2 - n
Я даже проверил
> f := (x, y) -> 2 ^ x - 2 ^ y;
> fx := n -> trunc((sqrt(8 * n + 1) + 3) / 2);
> fy := (n) -> (fx(n) - 1) * fx(n) / 2 - n;
x y
f := (x, y) -> 2 - 2
fx := n -> trunc(1/2 sqrt(8 n + 1) + 3/2)
fy := n -> 1/2 (fx(n) - 1) fx(n) - n
> seq(f(evalf(fx(i)), evalf(fy(i, fx(i)))), i = 0..10);
> seq(convert(f(evalf(fx(i)), evalf(fy(i, fx(i)))), binary), i = 0..10);
2., 4., 6., 8., 12., 14., 16., 24., 28., 30., 32.
10., 100., 110., 1000., 1100., 1110., 10000., 11000., 11100.,
11110., 100000.
>
---
|