double v1=1./37., v36=36./37.; void NextSpinAR( int Numb, double *Arr ) { // Находим новое распределение вероятностей выпадения номера int ii; for( ii=Numb; ii>0; ii-- ) { // перераспределяем текущую величину!! Arr[ii] += Arr[ii-1]*v1; Arr[ii-1] *= v36; } } В головном модуле программы организуется простой цикл: for( ii=1; ii< Nspin; ii++ ) { NextSpinAR( ii, Arr ); }