Вот написал пару функций угасания звука и повышения
& autocay автозапуска аудио = "1" onPlay = "audioVolumeIn (this);" & gt; «nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & lt; источник src = "/ test / new / imgs / audio_bg.wav" type = "audio / wav" & gt; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & lt; источник src = "/ test / new / imgs / audio_bg.mp3" type = "audio / mpeg" & gt; & lt; / audio & gt;
function audioVolumeIn(q){
if(q.volume){
var InT = 0;
var setVolume = 0.2; // До какого уровня поднимать
var speed = 0.005; // Скорость увиличения
q.volume = InT;
var eAudio = setInterval(function(){
InT += speed;
q.volume = InT.toFixed(1);
if(InT.toFixed(1) >= setVolume){
clearInterval(eAudio);
//alert('clearInterval eAudio'+ InT.toFixed(1));
};
},50);
};
};
function audioVolumeOut(q){
if(q.volume){
var InT = 0.4;
var setVolume = 0; // Начальное значение звука
var speed = 0.005; // скорость затухания
q.volume = InT;
var fAudio = setInterval(function(){
InT -= speed;
q.volume = InT.toFixed(1);
if(InT.toFixed(1) <= setVolume){
clearInterval(fAudio);
//alert('clearInterval fAudio'+ InT.toFixed(1));
};
},50);
};
};
Это упражнение по манипулированию рекуррентными отношениями, в основном. Чтобы понять этот ответ, вам должно быть удобно переключаться между матрицей и формой системы.
Сначала мы получаем повторение для fib(i)^K
. На самом деле это включает в себя систему повторений для fib(i)^K, fib(i)^(K-1) fib(i-1), fib(i)^(K-2) fib(i-1)^2, ..., fib(i-1)^K
. Я продемонстрирую для K = 3
.
fib(i)^3 = (fib(i-1) + fib(i-2))^3
= fib(i-1)^3 + 3 fib(i-1)^2 fib(i-2) + 3 fib(i-1) fib(i-2)^2 + fib(i-2)^3
fib(i)^2 fib(i-1) = (fib(i-1) + fib(i-2))^2 fib(i-1)
= fib(i-1)^3 + 2 fib(i-1)^2 fib(i-2) + fib(i-1) fib(i-2)^2
fib(i) fib(i-1)^2 = (fib(i-1) + fib(i-2)) fib(i-1)^2
= fib(i-1)^3 + fib(i-1)^2 fib(i-2)
fib(i-1)^3 = fib(i-1)^3
Они могут быть объединены в одну матрицу.
[fib(i)^3 fib(i)^2 fib(i-1) fib(i) fib(i-1)^2 fib(i-1)^3] =
i
= [fib(0)^3 fib(0)^2 fib(-1) fib(0) fib(-1)^2 fib(-1)^3] [1 0 0 0]
[3 1 0 0]
[3 2 1 0]
[1 1 1 1]
i
= [0 0 0 1] [1 0 0 0]
[3 1 0 0]
[3 2 1 0]
[1 1 1 1]
Вы можете узнать треугольник Паскаля там.
Теперь, учитывая систему повторений для функции f(i)
, мы можем вычислить повторения для f(c i)
, увеличив матрицу до степени c
.
Последний шаг - перейти от повторения f(i)
к повторению F(i) = f(0) + f(1) + ... + f(i-1)
. Просто добавить уравнение
F(i) = F(i-1) + f(i-1)
в систему.
Вычислив матрицу, которая, по моей оценке, будет иметь не более 12^2 = 144
элементов, мы можем вычислить соответствующую мощность, используя быстрый метод возведения в степень 10^9 + 7
. Имейте в виду скрывающуюся одну-единственную ошибку & ndash; это F(n+1)
, что вы хотите.