1 |
dashley |
6 |
%$Header: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/c_ras0/c_ras0.tex,v 1.4 2003/11/03 02:14:24 dtashley Exp $
|
2 |
|
|
|
3 |
|
|
\chapter[Solutions: \cratzeroxrefcomma{}Chapter \ref{crat0}]
|
4 |
|
|
{Solutions: \cratzeroxrefcomma{}Chapter \ref{crat0}, \cratzerolongtitle{}}
|
5 |
|
|
|
6 |
|
|
\label{cras0}
|
7 |
|
|
|
8 |
|
|
\vworkexercisechapterheader{}
|
9 |
|
|
\begin{vworkexercisesolution}{\ref{exe:crat0:sexe0:01}}
|
10 |
|
|
The value of the \texttt{state} variable when
|
11 |
|
|
evaluating the \emph{if()} clause on the
|
12 |
|
|
$n+1$'th invocation is
|
13 |
|
|
|
14 |
|
|
\begin{equation}
|
15 |
|
|
\label{eq:cras0:exe01:01}
|
16 |
|
|
K_1 - nK_4 + (n+1) K_2 .
|
17 |
|
|
\end{equation}
|
18 |
|
|
|
19 |
|
|
We require on the $n+1$'th invocation, in order for the
|
20 |
|
|
test of the \emph{if()} clause to fail (i.e. that the function
|
21 |
|
|
``\texttt{A()}'' has been run on the first $n$ invocations of
|
22 |
|
|
the base subroutine but is not run on the $n+1$'th invocation),
|
23 |
|
|
that:
|
24 |
|
|
|
25 |
|
|
\begin{equation}
|
26 |
|
|
\label{eq:cras0:exe01:01b}
|
27 |
|
|
K_1 - nK_4 + (n+1) K_2 < K_3.
|
28 |
|
|
\end{equation}
|
29 |
|
|
|
30 |
|
|
Solving this inequality for the smallest integral
|
31 |
|
|
value of $n$ yields:
|
32 |
|
|
|
33 |
|
|
\begin{equation}
|
34 |
|
|
\label{eq:cras0:exe01:01c}
|
35 |
|
|
n = \left\lceil
|
36 |
|
|
\frac{K_1 + K_2 - K_3 + 1}{K_4 - K_2}
|
37 |
|
|
\right\rceil .
|
38 |
|
|
\end{equation}
|
39 |
|
|
|
40 |
|
|
It can be verified using an example that
|
41 |
|
|
(\ref{eq:cras0:exe01:01c}). For example, with
|
42 |
|
|
$K_1 = 10$, $K_2 = 3$, $K_3 = 7$, and $K_4 = 5$,
|
43 |
|
|
(\ref{eq:cras0:exe01:01}) predicts that on the first
|
44 |
|
|
$\lceil 7/2 \rceil = 4$ invocations of the base subroutine
|
45 |
|
|
the subroutine ``\texttt{A()}'' will be run but on the 5th
|
46 |
|
|
invocation it will not. Tracing the algorithm with the
|
47 |
|
|
parameters specified reveals that at the
|
48 |
|
|
test in the \emph{if()} statement
|
49 |
|
|
on the first invocation of the
|
50 |
|
|
subroutine, \texttt{state}=13 (``\texttt{A()}'' executed);
|
51 |
|
|
on the second invocation of the
|
52 |
|
|
subroutine, \texttt{state}=11 (``\texttt{A()}'' executed);
|
53 |
|
|
on the third invocation of the
|
54 |
|
|
subroutine, \texttt{state}=9 (``\texttt{A()}'' executed);
|
55 |
|
|
on the fourth invocation of the
|
56 |
|
|
subroutine, \texttt{state}=7 (``\texttt{A()}'' executed);
|
57 |
|
|
and on the fifth invocation of the
|
58 |
|
|
subroutine, \texttt{state}=5 (``\texttt{A()}'' not executed).
|
59 |
|
|
This is in agreement with
|
60 |
|
|
(\ref{eq:cras0:exe01:01}).
|
61 |
|
|
\end{vworkexercisesolution}
|
62 |
|
|
%\vworkexerciseseparator
|
63 |
|
|
%\begin{vworkexercisesolution}{\ref{exe:cfry0:sexe0:02}}
|
64 |
|
|
%Placeholder.
|
65 |
|
|
%\end{vworkexercisesolution}
|
66 |
|
|
\vworkexercisechapterfooter
|
67 |
|
|
|
68 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
69 |
|
|
\vfill
|
70 |
|
|
\noindent\begin{figure}[!b]
|
71 |
|
|
\noindent\rule[-0.25in]{\textwidth}{1pt}
|
72 |
|
|
\begin{tiny}
|
73 |
|
|
\begin{verbatim}
|
74 |
|
|
$RCSfile: c_ras0.tex,v $
|
75 |
|
|
$Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/c_ras0/c_ras0.tex,v $
|
76 |
|
|
$Revision: 1.4 $
|
77 |
|
|
$Author: dtashley $
|
78 |
|
|
$Date: 2003/11/03 02:14:24 $
|
79 |
|
|
\end{verbatim}
|
80 |
|
|
\end{tiny}
|
81 |
|
|
\noindent\rule[0.25in]{\textwidth}{1pt}
|
82 |
|
|
\end{figure}
|
83 |
|
|
|
84 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
85 |
|
|
% $Log: c_ras0.tex,v $
|
86 |
|
|
% Revision 1.4 2003/11/03 02:14:24 dtashley
|
87 |
|
|
% All duplicate labels as flagged by LaTeX removed. Additional files added
|
88 |
|
|
% to Microsoft Visual Studio edit context.
|
89 |
|
|
%
|
90 |
|
|
% Revision 1.3 2003/03/08 04:11:19 dtashley
|
91 |
|
|
% Friday evening safety checkin.
|
92 |
|
|
%
|
93 |
|
|
% Revision 1.2 2001/07/01 21:10:59 dtashley
|
94 |
|
|
% Safety check-in after major re-org.
|
95 |
|
|
%
|
96 |
|
|
% Revision 1.1.1.1 2001/07/01 00:14:03 dtashley
|
97 |
|
|
% Initial import.
|
98 |
|
|
%
|
99 |
|
|
%
|
100 |
|
|
%End of file C_RAS0.TEX
|