def fib(n, a):
if (n < 1):
a[0] = 0
a[1] = 1
else:
m = n // 2
fib(m, a)
x = a[0] * (2 * a[1] - a[0])
y = a[0] * a[0] + a[1] * a[1]
if (n % 2):
a[0] = y
a[1] = x + y
else:
a[0] = x
a[1] = y
return a
def sumFib3n(n):
if (n < 1):
return 0
arr = [0, 0]
[fn, fnp1] = fib(n, arr)
fnm1 = fnp1 - fn
sgn = 1 if n % 2 else -1
sumPow3 = (fn * fnp1 * fnp1 + sgn * fnm1 + 1) // 2
return sumPow3 - 1 + fn * fn * fn + fnp1 * fnp1 * fnp1
print(sumFib3n((40000000 - 2)//3))
оно именно так через дженерик тут и описано?
interface ChangeEvent<T = Element> extends SyntheticEvent<T> {
target: EventTarget & T;
}
Просто у каждого HTML элемента свои свойства, как их event объединяет?
и вот повесив зависимость от стейта и использовав реф напрямую ненадо будет иметь ещё один реф для проверки изменения нашего рефа и эффект будет тригериться только тогда, когда надо.
реф будет присвоен после выполнения тела компонента, но перед эффектом.
https://chrome.google.com/webstore/detail/redux-de...
теперь ты можешь увидеть всё что лежит в сторе. И, кажется, будет нетрудно составить селектор.