function period = lcg_gen(fig_name,a,c,m,x0,maxnum,viewport,pause_val,do_trace) figure('Name',fig_name); grid on axis([0 m*viewport 0 m*viewport]); hold on; count=1; xnmin1=x0; to_display=viewport*m; while count <= maxnum xn=mod(a*xnmin1+c,m); if xn<=to_display plot(xn,xnmin1,'-ok','MarkerSize',3,'MarkerFaceColor',[0,0,0]); if do_trace>0 s = sprintf('Count:%03d Xn-1:%03d Xn:%03d',count,xnmin1,xn); disp(s); end if pause_val>=0 if pause_val>0 pause(pause_val); else pause; end end end if xn==x0 break, end xnmin1=xn; count = count+1; end s = sprintf('PRE LCG(a,c,m,x0)=LCG(%d,%d,%d,%d) zobrazenych %d bodov',a,c,m,x0,count); disp(s) ret=count; return