/*
Генератор случ. величины методом Фибоначчи с запозданием
*/
/*
codeby.net
Autor: DarkKnight125
*/
#include <iostream>
#include <time.h>
using namespace std;
unsigned int lagA = 0, lagB = 0;
void main(void)
{
int Count = 0;
setlocale(LC_ALL,"Russian");
cout<<"Введите Лаг a = ";
cin>>lagA;
cout<<"Введите Лаг b = ";
cin>>lagB;
cout<<"Введите кол-во генерируемых значений : ";
cin>>Count;
//Для старта фибоначчиевому датчику требуется max{a,b} случайных чисел,
//которые могут быть сгенерированы простым (!!!)конгруэнтным датчиком(!!!).
srand(time(NULL)); //И так инициализируем конгруэнтный датчик
int* Arr = new int[max(lagA,lagB)]; //Генерируем массив
for (int i = 0; i<max(lagA,lagB); i++)
Arr[i] = rand(); //Заполняем его случ. величинами которые сгенерировали конгруэнтным датчиком
//Генерируем случ. величины
for (int i=Count; i>0; i--)
{
int Res; //Результат
if (Arr[max(lagA,lagB)-lagA] >= Arr[max(lagA,lagB)-lagB])
{
Res = Arr[max(lagA,lagB)-lagA] - Arr[max(lagA,lagB)-lagB];
} else Res = Arr[max(lagA,lagB)-lagB]-Arr[max(lagA,lagB)-lagA];
for (int i = 0; i<max(lagA,lagB); i++)
Arr[i] = rand(); //Генерируем массив заново на каждой итерации
cout<<Res<<endl; //Выведим на экран
}
}