Lksim_function(k,a) { # this program reports the length of the longest Lk (k-interrupted run) for k=1-5 # a is a binary sequence, k is the num. of interrups allows # n_length(a) j_0 x_NULL y_NULL for (i in 1:(n-1)){ if (a[i]!=a[i+1]) { j_j+1 x[j]_i }} L1_matrix(0,1, j ) L2_matrix(0,1, j ) L3_matrix(0,1, j ) L4_matrix(0,1, j ) L5_matrix(0,1, j ) L_matrix(1,1, j ) if(j==0){ if(a[1]==1) { y[1]_n L[1]_n } if(a[1]==0) { y[1]_n L[1]_0 } } if( j > 0){ y[1]_x[1] y[j+1]_n-x[j] if(j>1){for(j in 2:j){ y[j]_x[j]-x[j-1]}} t_1 if(a[1]==1) { if((2*t+1)>(j+1)){L_y[1]} while((2*t+1)<=(j+1)) { s1_y[2*t-1]+y[2*t+1] s2_y[2*t] L1[t]_(s1+s2)*(s2<=k) if((2*t+3)<=(j+1) && k>1) { s21_(y[2*t+3]+s1) s22_(y[2*t+2]+s2) L2[t]_(s21+s22)*(s22<=k) } if((2*t+5)<=(j+1) && k>2) { s31_(y[2*t+5]+s21) s32_(y[2*t+4]+s22) L3[t]_(s31+s32)*(s32<=k) } if((2*t+7)<=(j+1) && k>3) { s41_(y[2*t+7]+s31) s42_(y[2*t+6]+s32) L4[t]_(s41+s42)*(s42<=k) } if((2*t+9)<=(j+1) && k>4) { s51_(y[2*t+9]+s41) s52_(y[2*t+8]+s42) L5[t]_(s51+s52)*(s52<=k) } L[t]_max((y[2*t-1]),(y[2*t+1]),L1[t],L2[t],L3[t],L4[t],L5[t]) t_t+1 }} if(a[1]==0) { if((2*t+2)>(j+1)){L_y[2]} while((2*t+2)<=(j+1)) { s1_y[2*t]+y[2*t+2] s2_y[2*t+1] L1[t]_(s1+s2)*(s2<=k) if((2*t+4)<=(j+1) && k>1) { s21_(y[2*t+4]+s1) s22_(y[2*t+3]+s2) L2[t]_(s21+s22)*(s22<=k) } if((2*t+6)<=(j+1) && k>2) { s31_(y[2*t+6]+s21) s32_(y[2*t+5]+s22) L3[t]_(s31+s32)*(s32<=k) } if((2*t+8)<=(j+1) && k>3) { s41_(y[2*t+8]+s31) s42_(y[2*t+7]+s32) L4[t]_(s41+s42)*(s42<=k) } if((2*t+10)<=(j+1) && k>4) { s51_(y[2*t+10]+s41) s52_(y[2*t+9]+s42) L5[t]_(s51+s52)*(s52<=k) } L[t]_max((y[2*t]),(y[2*t+2]),L1[t],L2[t],L3[t],L4[t],L5[t]) t_t+1 }}} #result_list(y=y,a=a,L1=L1,L2=L2,L3=L3,L4=L4,L5=L5,L=L) result_list(L1=max(L1),L2=max(L2),L3=max(L3),L4=max(L4),L5=max(L5), L=max(L)) result }