[BACK]Return to intro.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / compalg

File: [local] / OpenXM / doc / compalg / intro.tex (download)

Revision 1.3, Tue Mar 28 02:02:30 2000 UTC (24 years, 1 month ago) by noro
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.2: +1 -0 lines

Added $OpenXM$.

%$OpenXM: OpenXM/doc/compalg/intro.tex,v 1.3 2000/03/28 02:02:30 noro Exp $
\chapter{$B$O$8$a$K(B}

$B7W;;5!Be?t$O(B, $B7W;;5!>e$G(B, $BBe?tE*7W;;$r@53N$K9T$J$&$3$H$rL\I8$H$7$F$$$k(B.

$B7W;;5!$,<BMQ2=$5$l$F0JMh(B, $B7W;;5!>e$G$N7W;;$H$O(B, $B8GDjD9(B, $B$9$J$o$A7W;;5!(B
$B$,Ds6!$9$k%5%$%:$N@0?t$"$k$$$OIbF0>.?t$rMQ$$$?7W;;$r0UL#$9$k>l9g$,$[$H(B
$B$s$I$G$"$C$?(B. $BFC$K(B, $BIbF0>.?t$rMQ$$$k(B, $B$$$o$f$k?tCM7W;;$N>l9g(B, $B7W;;8m:9(B
$B$OHr$1$i$l$:(B, $B0l$D$N%"%k%4%j%:%`$KBP$7$F(B, $B$=$N7k2L$N8m:9$N2r@O$OI,?\$G(B
$B$"$C$?(B. $B<B:](B, $BDL>o$N?tCM7W;;$G$O8m:9$NN_@Q$,Bg$-2a$.$F(B, $B<BMQ$K$OE,$5$J(B
$B$$$H$5$l$k%"%k%4%j%:%`$bB8:_$9$k(B. $B$^$?(B, $B?tCM7W;;$O(B, $BBe?tE*7W;;$K8B$i$:(B, 
$BBe?tJ}Dx<0(B, $BHyJ,J}Dx<0$J$I$N6a;w2r$N7W;;$J$I$K9-$/MQ$$$i$l$F$$$k$,(B, $B$=(B
$B$l$i$N>l9g$K$*$1$k(B, $BBe?tJ}Dx<0(B, $BHyJ,J}Dx<0$O(B, $BB?$/$N>l9g(B, $B$=$N?t3XE*9=(B
$BB$$O=E;k$5$l$:(B, $B$"$kE@$K$*$1$kCM$r@8@.$9$k%V%i%C%/%\%C%/%9$H$7$FMQ$$$i(B
$B$l$k(B. $B$3$N$h$&$JJ}K!$O(B, $B9-$$HO0O$NF~NO$KBP$7$F$J$s$i$+$N6a;w2r$r@8@.$9(B
$B$k$3$H$,$G$-$kH?LL(B, $BF@$i$l$?2r$+$i(B, $B$b$H$NJ}Dx<0$,K\Mh;}$C$F$$$??t3XE*(B
$B$J@-<A$rF@$k$3$H$OB?$/$N>l9g:$Fq$G$"$k(B. $B7W;;5!Be?t$O(B, $B?t3XE*BP>]$r(B, $BCi(B
$B<B$K7W;;5!>e$KI=8=$7(B, $B8m:9$N$J$$7W;;$r9T$J$&$3$H$K$h$j(B, $B?t3XE*$KL@3N$J(B
$B0UL#$r$b$D7k2L$rF@$k$3$H$r<g4c$H$7$F$$$k(B. $BEvA3(B, $B?tCM7W;;$KHf3S$7$F(B, $B07(B
$B$($kBP>]$O8B$i$l$k(B. $B:#$N$H$3$m(B, $B@0?t(B, $BM-M}?t$*$h$S$=$l$i$r78?t$H$9$kB?(B
$B9`<0(B, $BM-M}<0$,<g$JBP>]$G$"$k$?$a(B, $B7W;;5!(B{\bf $BBe?t(B}$B$H8F$P$l$k(B. $B$7$+$7(B, 
$B$=$N5Z$VHO0O$O(B, $BB?9`<0$N0x?tJ,2r$r=i$a$H$7$F(B, $BB?9`<0%$%G%"%kO@$N1~MQ$H(B
$B$7$F$NBe?t4v2?3X$r%+%P!<$9$k$^$G$K$J$j(B, $B%$%G%"%k$N=`AG%$%G%"%kJ,2r$,9=(B
$B@.E*$K2DG=$H$J$C$F$$$k(B. $B$3$NJ,Ln$K$*$1$k4pK\E*$J%D!<%k$O(B, Buchberger 
$B$K$h$j9M0F$5$l$?%0%l%V%J4pDl$G$"$k(B. $B$3$l$r4^$`35G0$,(B, standard basis 
$B$H$7$F(B, $B9-Cf$K$h$j(B Buchberger $B0JA0$K9M0F$5$l$F$$$?$,(B, $BB?9`<04D$N>l9g$K(B
$B9=@.E*$J@8@.%"%k%4%j%:%`$r(B Buchberger $B$,M?$($?$3$H$K$h$j(B, $B0J>e$N$3$H$,(B
$B7W;;5!>e$G2DG=$H$J$C$?$o$1$G$"$k(B.

$B0J>e$N$h$&$K(B, $B7W;;5!Be?t$K$*$$$F$O(B, $B@53N$J7W;;$H$$$&$3$H$,4pK\$H$J$C$F(B
$B$$$k(B. $B:G$b4pK\E*$JC10L$G$"$k@0?t$b(B, $BI,MW$J$@$1$N7e?t$r$9$Y$FI=8=$G$-(B
$B$kG$0UB?G\D9@0?t(B (bignum) $B$H$$$&7A$GI=8=$5$l$J$1$l$P$J$i$J$$(B. $BEvA3$J$,(B
$B$i(B, $B7e?t$,A}$($l$PA}$($k$[$I(B, $B$=$l$i$N4V$N1i;;$K$+$+$k;~4V$OA}$($k(B. $B<B(B
$B:](B, bignum $B$N7W;;;~4V$,(B, $BA4BN$N7W;;;~4V$N<gMW$JItJ,$r@j$a$k>l9g$b$7$P(B
$B$7$P@8$:$k(B. $B$h$C$F(B, $B7W;;5!Be?t$K$*$$$F$O(B, $B7W;;5!$,Ds6!$9$k@0?t1i;;$N@-(B
$BG=$,(B, $B7W;;A4BN$N8zN($rBg$-$/:81&$9$k(B. 
$B;DG0$J$,$i(B, $B$D$$:G6a$^$G(B, $B7W;;@-G=$N8~>e$O(B, $B$$$o$f$k(B High Performace
Computing $B$N$?$a$NIbF0>.?t1i;;$KBP$7$F$N$_7W$i$l$F$-$?(B.
$B$7$+$7(B, Pentium, SPARC $B$J$I$N(B CPU $B$G$O(B
$B@0?t1i;;@-G=$N8~>e$b?^$i$l$F$*$j(B, $B7W;;5!Be?t%7%9%F%`$N@-G=$b$=$l$K(B
$B1~$8$FHtLvE*$K8~>e$7$F$-$?(B. 
$B$5$i$K(B, $B:G6aBg$-$/CmL\$5$l$F$$$k0E9f5;=Q$O(B, RSA $B0E9f(B, $BBJ1_6J@~0E9f(B
$B$J$I(B, bignum $B$"$k$$$O$=$N>e$NB?9`<01i;;$r%Y!<%9$H$7$F$$$k$b$N$,B?$/(B, 
$B7W;;5!Be?t$GG]$o$l$?$5$^$6$J<jK!$,$=$N$^$^LrN)$D%1!<%9$bB?$$(B. 
$B7W;;5!Be?t$G$O(B, $BB?9`<0(B, $BM-M}<0$J$I(B, $BLZ9=B$$r$b$DBP>]$,?tB?$/(B
$BMQ$$$i$l$k$?$a(B, $B?t$N1i;;@-G=$@$1$G$J$/(B, $B%G!<%?9=B$$NI=8=J}K!(B, $B$5$^$6$^(B
$B$J%"%k%4%j%:%`$N8zN($N8~>e(B, $B$"$k$$$O%a%b%j4IM}$J$I$r?<$/9MN8$9$kI,MW$,(B
$B$"$k(B.

$BK\9V$G$O(B, 
\begin{itemize}
\item $B@0?t(B, $BB?9`<0$NI=8=$*$h$S;MB'1i;;%"%k%4%j%:%`(B
\item $BB?9`<0(B GCD, $B=*7k<0(B, $BCf9q>jM>DjM}(B
\item $BB?9`<0$N0x?tJ,2r(B, $BM-M}4X?t$NITDj@QJ,(B
\item $B%0%l%V%J4pDl(B, $BBe?tJ}Dx<0$N5a2r(B, $B%$%G%"%k$N=`AGJ,2r(B
\end{itemize}
$B$K$D$$$F=R$Y$k(B. $B$3$3$G=R$Y$i$l$k%"%k%4%j%:%`$N$[$H$s$I$O(B, $BI.<T$i$,3+H/(B, 
$BG[I[Cf$N7W;;5!Be?t%7%9%F%`(B Risa/Asir \cite{NS} $B>e$K<BAu$5$l(B, $BMQ$$$i$l$F$$$k(B. 

\begin{nt}
\begin{tabbing}
\end{tabbing}
\begin{description}
\item[$\Z$] $BM-M}@0?t4D(B
\item[$\N$] $BHsIi@0?tA4BN(B
\item[$\Q$] $BM-M}?tBN(B
\item[$\C$] $BJ#AG?t(B
\item[$|F|$] $F$ $B$,?t$N$H$-@dBPCM(B, $F$ $B$,=89g$N$H$-85$N8D?t(B ($BG;EY(B)
\end{description}
\end{nt}

\chapter{$B=`Hw(B}

$BK\>O$G$O(B, $B0J2<$G=R$Y$k$5$^$6$^$J%"%k%4%j%:%`$rM}2r$7(B, $B7W;;5!>e$K<BAu(B
$B$9$k$?$a$KI,MW$J$3$H$,$i$K$D$$$F@bL@$9$k(B. 

\section{CPU $B$N9=B$$*$h$SF0:n(B}

$B$I$N$h$&$J8@8l$G%"%k%4%j%:%`$,5-=R$5$l$k$K$;$h(B, $B:G=*E*$K$O(B
$B$=$N%"%k%4%j%:%`$O(B CPU $B8GM-$NL?Na$H$7$F<B9T$5$l$k(B. $B$3$3$G$O(B, 
CPU $B$N4pK\E*$J9=B$(B, $BF0:n$K$D$$$F2r@b$9$k(B. 

\subsection{CPU $B$K$D$$$F$N$"$i$^$7(B}

CPU $B$KBP$9$kL?Na$O(B, 32bit $B$"$k$$$O(B 64bit $B$H$$$&$"$k7h$^$C$?Bg$-$5$N(B
bit $BNs$GI=8=$5$l$F$$$k(B. CPU $B$O(B, $B%a%b%jCf$KCV$+$l$?0lO"$NL?NaNs$r=g(B
$B$KFI$_=P$7(B, $BBP1~$9$kA`:n$r<B9T$9$k(B. CPU $B$O(B, $B%l%8%9%?$H8F$P$l$k(B
$BFC<l$J%a%b%j$r;}$C$F$$$k(B. $B%l%8%9%?$O(B, CPU $B$N9=@.$K1~$8$F(B 32bit $B$"$k$$$O(B
64 bit $B$H$$$&Bg$-$5$r;}$D(B. $B$=$NK\?t$ODL>o?tK\$+$i?t==K\DxEY$H>/$J$$$,(B, 
$B<g5-21$HHf3S$7$F9bB.$KFI$_=q$-$G$-(B, CPU $B$N%G!<%?A`:n$NBP>]$H$J$k(B. 
CPU $B$,9T$&4pK\A`:n$K$O(B, $B<!$N$h$&$J$b$N$,$"$k(B.

\begin{itemize}
\item $B%a%b%j$KBP$9$kL?Na(B

$B%a%b%j$+$i%l%8%9%?$X$N%G!<%?$NFI$_9~$_(B, $B%l%8%9%?$+$i%a%b%j$X$N(B
$B%G!<%?$N=q$-=P$7$r9T$&(B. 

\item $B1i;;L?Na(B

$B4v$D$+$N%l%8%9%?$KCV$+$l$?%G!<%?$rMQ$$$F<o!9$N1i;;$r9T$&(B. $B1i;;L?Na$K$O(B, 
$B@0?t1i;;L?Na(B, $BIbF0>.?t1i;;L?Na$J$I$,$"$k(B.

\item $BJ,4tL?Na(B

$B%l%8%9%?$NCM$r%F%9%H$7$F(B, $B$=$N7k2L$K1~$8$F%W%m%0%i%`Cf$N;XDj$5$l$?(B
$B>l=j$K%8%c%s%W$9$k(B. 
\end{itemize}

\subsection{$B@0?t1i;;L?Na(B}
\label{cpuint}
$B7W;;5!Be?t$K$*$$$F$O(B, $B8m:9$N$J$$1i;;$r<B8=$9$k$?$a@0?t1i;;$rB?MQ$9$k(B.
$B$3$3$G$O(B, $B@0?t1i;;L?Na$K$D$$$F4JC1$K2r@b$9$k(B. 

$B%l%8%9%?$N(B bit $BD9(B $n$ $B$KBP$7(B $2^n$ $B$r(B $B$ $B$H=q$/(B.  $B%l%8%9%?>e$N%G!<%?(B
$B$O(B, 0 $B0J>e(B $B-1$ $B0J2<$NHsIi@0?t$rI=$9$3$H$,$G$-$k(B. $B$9$J$o$A(B, $a_i$ $B$r(B 
0 $B$^$?$O(B 1 $B$H$9$k$H(B, bit $BNs(B $(a_{n-1}a_{n-2}\cdots a_1a_0)$$B$O(B 
$$a=\sum_{i=0}^{n-1}a_i2^i$$ $B$J$k@0?t(B $a$ $B$rI=$9(B ($BFs?J?t(B).  $B0lJ}$G(B, $BIi?t$O(B 2 $B$N(B
$BJd?tI=<($H8F$P$l$kJ}K!$G(B, $B$d$O$j(B $n$ bit $B$N%G!<%?$GI=$9(B. $B$3$N>l9g(B bit 
$BNs(B $(a_{n-1}a_{n-2}\cdots a_1a_0)$ $B$O(B
$$a=-a_{n-1}2^{n-1}+\sum_{i=0}^{n-2}a_i2^i$$ $B$J$k@0?t(B $a$ $B$rI=$9(B. $BNc$((B
$B$P(B, $-1$ $B$O(B $(11\cdots 1)$ $B$J$k(B bit $BNs$GI=$5$l$k(B. $B$3$NJ}K!$K$h$l$P(B,
$n$ bit $B$N%G!<%?$G(B $-B/2 \le a \le B/2-1$ $B$J$k@0?t$rI=$9$3$H$,$G$-(B
$B$k(B. $BCm0U$9$Y$-E@$O(B, $B2C8:>h;;$rK!(B $B$ $B$G9T$&>l9g(B, $B$I$A$i$G2r<a$7$F$b7k2L$O(B
$BF10l$H$J$k$3$H$G$"$k(B. $B$3$l$O(B, $B>e5-Fs$D$NI=8=$N0c$$$,(B $BK!(B $B$ $B$G$NBeI=85(B
$B$N<h$jJ}$N0c$$$G$"$k$3$H$+$i$o$+$k(B. $B0J2<$G(B, $r = a \bmod B$ $B$O(B 
$0\le r < B$ $B$J$k>jM>$rI=$9(B. $BDL>o(B, CPU $B$K$O<!$N$h$&$J@0?t1i;;L?Na$,MQ(B
$B0U$5$l$F$$$k(B.

\begin{itemize}
\item $B2C;;(B

$(a+b) \bmod B$

\item $B8:;;(B

$(a-b) \bmod B$

\item $BHf3S(B

if $a > b$ then 1 else 0

\item $B:8%7%U%H(B

$a$ $B$N(B $k$ bit $B:8%7%U%H(B $\bmod B$

\item $B1&%7%U%H(B

$a$ $B$N(B $k$ bit $B1&%7%U%H(B ($B1&(B $k$ bit $B$O<N$F$i$l$k(B)

\item bit $BKh$N(B and, or, exclusive or, not

$B@0?t$r(B bit $BNs$H8+$F(B, $B3F(B bit $BKh$KO@M}1i;;$r9T$&(B. 
\end{itemize}

$B%7%U%H1i;;$O(B, $BO@M}1i;;$KMQ$$$i$l$k$@$1$G$J$/(B, $B@0?t$N(B $2^k$ $BG\(B, $B$"$k$$$O(B
$2^k$ $B$G3d$C$?>&$N7W;;$KMQ$$$i$l$k(B. $B$3$l$i0J30$K(B, CPU $B$K$h$C$F$O<!$N(B
$B1i;;$,MQ0U$5$l$F$$$k>l9g$,$"$k(B. 

\begin{itemize}
\item $B>h;;(B

$(a\times b) \bmod B$

\item $BG\@:EY>h;;(B

$(a\times b) \bmod B^2$

\item $B=|;;(B

$a = qd+r$ $B$J$k(B $q$, $r$ ($0\le r < d$)

\item $BG\@:EY=|;;(B

$aB+b = qd+r$ $B$J$k(B $q$, $r$ ($0\le r < d$)
\end{itemize}

$B$3$l$i$N4pK\A`:n$rMQ$$$F(B, $B<!@a$G=R$Y$k(B, $BB?G\D9@0?t$N;MB'1i;;$,<B8=(B
$B$5$l$k(B. 

\section{C $B8@8l$K$D$$$F(B}

$BK\9V$G$O(B, $B%"%k%4%j%:%`$*$h$S%G!<%?9=B$$N7W;;5!>e$G$N<BAuNc$r(BC $B8@8l$K$h(B
$B$j<($9>l9g$,$"$k(B. $B$3$3$G$O(B, C $B8@8l$NJ8K!$K4X$7$F(B, $B$4$/4pK\E*$J$3$H$K$D(B
$B$$$F2r@b$9$k(B. $B>\:Y$O(B, \cite{KR} $B$J$I$r;2>H$5$l$?$$(B.

\subsection{$BJQ?t(B}

$BJQ?t$H$O%G!<%?$r3JG<$7$F$*$/>l=j$G$"$k(B. $B%G!<%?$N<oN`$K$O@0?t(B, $BIbF0>.?t(B
$B$r$O$8$a$H$7$F$5$^$6$^$J$b$N(B ($B7?(B) $B$,$"$k(B. $BJQ?t$r;HMQ$9$k$?$a$K$O(B, $B7?$*(B
$B$h$SL>A0$r@k8@$7$J$1$l$P$J$i$J$$(B. $BNc$($P<!$O(B, {\tt a}, {\tt b}, {\tt
xyz} $B$H$$$&L>A0$NId9f$D$-@0?t7?JQ?t(B, $B$*$h$S(B {\tt p}, {\tt q}$B$H$$$&L>A0(B
$B$NId9f$J$7@0?t7?JQ?t$N@k8@$G$"$k(B. $B@0?t7?JQ?t$N%5%$%:$,(B 32bit $B$N>l9g(B,
{\tt int} $B7?$NJQ?t$O(B $-2^{31} \le x \le 2^{31}-1$, {\tt unsigned int} 
$B7?$NJQ?t$O(B$0 \le x \le 2^{32}-1$ $B$J$k@0?t(B $x$ $B$rI=8=$9$k$3$H$,$G$-$k(B.

\begin{verbatim}
int a,b,xyz;
unsigned int p,q;
\end{verbatim}

\subsection{$B<0(B}

$BJQ?t$*$h$SDj?t$KBP$9$k0lO"$N;MB'1i;;(B, $BO@M}1i;;$J$I$r$^$H$a$F0l$D$N<0(B
$B$H$7$F5-=R$9$k$3$H$,$G$-$k(B. $B2C(B, $B8:(B, $B>h$O$=$l$>$l(B {\tt +}, {\tt -},
{\tt *} $B$GI=$9(B. {\tt /} $B$O=|;;$K$*$1$k>&(B ($B@0?tItJ,(B), {\tt \%} $B$O>jM>$r(B
$BI=$9(B. $B<0$NCf$GMQ$$$k$3$H$,$G$-$k1i;;;R$K$O(B, $BB>$K(B, {\tt <<} ($B:8%7%U%H(B),
{\tt >>} ($B1&%7%U%H(B), {\tt |} (bit $B$4$H$N(B or), {\tt \&} (bit $B$4$H$N(B 
and),
\verb+^+
(bit $B$4$H$N(B exclusive or) $B$J$I$,$"$k(B. $B$^$?(B, {\tt <},
{\tt <=}, {\tt >}, {\tt >=}, {\tt ==} ($BEy$7$$(B), {\tt !=}($BEy$7$/$J$$(B)$B$J$I$b(B, 
$B@5$7$1$l$P(B 1, $B$=$&$G$J$1$l$P(B 0 $B$H$$$&CM$rJV$9(B 2 $B9`1i;;;R$H$7$FMQ$$$k$3(B
$B$H$,$G$-$k(B.  $BId9f$J$7@0?t$KBP$9$k2C8:>h;;(B, $B:8%7%U%H1i;;$O(B, $B@0?t7?$N%5(B
$B%$%:$r(B $n$ bit $B$H$9$k$H$-(B, $BK!(B $2^n$ $B$G7W;;$5$l$k(B. $BNc$($P(B, $B@0?t7?$,(B 
32bit $B$N$H$-(B,

\begin{verbatim}
unsigned int a,r;
a = 1<<31;
r = a+a;
\end{verbatim}
$B$r<B9T$9$k$H(B {\tt r} $B$O(B 0 $B$H$J$k(B. 

\subsection{$BJ8(B}

$BJ8$O(B C $B8@8l$N<B9TC10L$G$"$k(B. $BJ8$K$O(B, $B<0$K%;%_%3%m%s(B {\tt;} $B$rIU$1$?(B
$BC1J8$NB>$K(B, $B4v$D$+$NJ8$r(B \verb+{+, \verb+}+ $B$G3g$C$?J#J8(B, {\tt if}
$BJ8(B, {\tt for} $BJ8(B, {\tt while} $BJ8(B, {\tt switch} $BJ8$J$I$N@)8f$rH<$&(B
$BJ8$J$I$,$"$k(B. $B<!$NNc$O(B, $B>.$5$J(B {\tt n} $B$KBP$7$F3,>h$r7W;;$9$kJ8$G$"$k(B. 

\begin{verbatim}
unsigned int f;
for ( f = 1; n >= 1; n-- ) f *= n;
\end{verbatim}
$B$3$3$G(B, {\tt n--} $B$O(B {\tt n = n-1}, {\tt f *= n} $B$O(B {\tt f = f*n} $B$r$=(B
$B$l$>$l0UL#$9$k(B. $B$3$NJ8$O(B, $B@0?t7?$,(B 32bit $B$N>l9g(B, {\tt n} $B$,(B 12 $B0J2<$G(B
$B$N$_@5$7$$CM$rM?$($k(B. $B$3$l$O(B, 13 $B0J>e$G$O7k2L$,(B $2^{32}$ $B0J>e$H$J$k$?$a$G(B
$B$"$j(B, $B$3$N$h$&$J>l9g$K$b@5$7$$7k2L$rF@$k$?$a$K$O(B, $B<!@a$G=R$Y$k$h$&$J(B
$BG$0UB?G\D9@0?t$NI=8=$*$h$S$=$l$KBP$9$k%"%k%4%j%:%`$,I,MW$H$J$k(B.

\subsection{$B4X?t(B}

C $B8@8l$K$*$$$F$O(B, $B%W%m%0%i%`$O4X?t$H$7$F5-=R$5$l$k(B. $B4X?t$O(B,$B0z?t(B ($BF~NO(B) 
$B$KBP$9$kA`:n$r$$$/$D$+$NJ8$K$h$j5-=R$7(B, $BI,MW$,$"$l$P7k2L$rJV$9(B, $B$H$$$&(B
$BA`:n$r$^$H$a$?$b$N$G$"$k(B. $B@h$K=R$Y$?3,>h7W;;$r4X?t$K$9$k$H<!$N$h$&$K$J$k(B. 

\begin{verbatim}
unsigned int factorial(unsigned int n)
{
    unsigned int f;
    for ( f = 1; n >= 1; n-- ) f *= n;
    return f;
}
\end{verbatim}
$B$3$NNc$G$O(B, $BId9f$J$7@0?t(B {\tt n} $B$r<u$1<h$j(B, $B$=$N3,>h$rId9f$J$7@0?t$H$7$F(B
$BJV$9(B {\tt factorial} $B$H$$$&4X?t$,@k8@$5$l$F$$$k(B. 

\subsection{$BG[Ns(B, $B%]%$%s%?(B}

$BG$0UB?G\D9@0?t$O(B, $B%a%b%j>e$N==J,$JD9$5$NO"B3NN0h$H$7$FI=8=$G$-$k(B. $B$3$N$h$&$J(B
$BNN0h$O(B, C $B8@8l$G$OG[Ns$H$7$FI=8=$5$l$k(B. 

\begin{verbatim}
unsigned int a[10];
\end{verbatim}
$B$3$l$O(B, $BD9$5(B 10 $B$NId9f$J$7@0?tG[Ns(B {\tt a} $B$r@k8@$7$F$$$k(B. $BG[Ns$N3FMW(B
$BAG$O(B, {\tt a[0]}, $\cdots$, {\tt a[9]} $B$K$h$jF@$i$l$k(B. ($BE:;z$,(B 0 $B$+$i(B
$B;O$^$k$3$H$KCm0U(B.) $B<!$N%W%m%0%i%`$O(B, $BD9$5(B 10 $B$NG[Ns$N(B {\tt i} $BHVL\$N(B
$BMWAG$K(B {\tt i} $B$rBeF~$9$k(B. 

\begin{verbatim}
unsigned int a[10];
int i;
for ( i = 0; i < 10; i++ ) a[i] = i;
\end{verbatim}
$B$3$N%W%m%0%i%`$O<!$N$h$&$K$b=q$1$k(B. 

\begin{verbatim}
unsigned int a[10];
int i;
unsigned int *p;
for ( i = 0, p = a; i < 10; i++, p++ ) *p = i;
\end{verbatim}
{\tt p} $B$O%]%$%s%?$H8F$P$l$k7?$NJQ?t$G$"$k(B. $B%]%$%s%?$O(B, $B%a%b%j$N%"%I%l%9(B
$B$rCj>]2=$7$?$b$N$G$"$k(B. $B$3$NNc$N>l9g$K$O(B, {\tt p = a} $B$K$h$j(B
$B:G=i(B {\tt p} $B$OG[Ns(B {\tt a} $B$N@hF,$r;X$7$F$$$k(B. $B$=$7$F(B, {\tt i} $B$,(B
1 $BA}$($k$?$S$K(B, {\tt p} $B$N;X$90LCV$b(B, $BG[NsCf$G(B 1 $BMWAG$:$D@h$r;X$9$h$&$K(B
$BJQ2=$7$F$$$/(B. $B$9$J$o$A(B, {\tt p++} $B$K$h$k(B {\tt p} $B$N%"%I%l%9$H$7$F$N(B
$BJQ2=NL$O(B {\tt unsigned int *p} $B$J$k@k8@$K$h$j5,Dj$5$l$k$N$G$"$k(B. 
$B$^$?(B, {\tt *p = i} $B$O(B, {\tt p} $B$N;X$9NN0h$NFbMF$r(B {\tt i} $B$H$$$&CM(B
$B$K=q$-49$($k$3$H$r0UL#$9$k(B. 

$B%]%$%s%?$rF3F~$9$kI,MW@-$K$O$5$^$6$^$J$b$N$,$"$k(B.
$B$3$3$G$O<!$N(B 3 $B$D$K$D$$$F@bL@$9$k(B. 

\begin{itemize}
\item $BF0E*$J%a%b%j3d$jEv$F(B

$B2f!9$N1i;;BP>]$G$"$k@0?t$O(B, $B7W;;$N2aDx$G$$$/$i$G$bBg$-$JCM$H$J$C$F$$$/(B
$B2DG=@-$,$"$k(B. $B$=$N$?$a(B, $BNc$($P2C;;$r9T$&4X?t$O(B, $BG$0U$NBg$-$5$N0z?t$KBP(B
$B$7$F(B, $B7k2L$rJ];}$9$k$@$1$NNN0h$r3NJ]$7$F$=$3$K7k2L$r=q$/$H$$$&7A$,<+A3(B
$B$G$"$k(B. $B$3$N$H$-(B, $B5-213d$jEv$F%k!<%A%s$,JV$9CM$O(B, $B%a%b%jCf$N$"$kNN0h$N(B
$B@hF,%"%I%l%9$G$"$j(B, $B<u$1<h$kB&$OI,A3E*$K%]%$%s%?$H$7$F07$&I,MW$,$"$k(B.

\item $BLZ9=B$$NI=8=(B

$BB?9`<0$O(B, $B8e$K=R$Y$k$h$&$KLZ9=B$$K$h$jI=8=$5$l$k(B. $B$=$NL>$NDL$j(B, $BLZ$O:,(B
$B$+$i;^$o$+$l$7$J$,$i$D$J$,$k%G!<%?$rI=8=$9$k(B. $B$3$l$O(B, $B%a%b%j>e$G$O(B, $BB>(B
$B$NNN0h$r;X$9%]%$%s%?$rJ];}$9$k%G!<%?9=B$$K$h$jI=8=$9$k$N$,<+A3$G$"$k(B.

\item $B4X?t8F$S=P$7B&$NJQ?t$N=q$-49$((B

C $B8@8l$G$O(B, $B4X?t8F$S=P$7$OCM$K$h$k8F$S=P$7(B (call by value) $B$H8F$P$l$k(B
$BJ}K!$G9T$o$l$k(B. $B$9$J$o$A(B, $B8F$S=P$7B&$NJQ?t$r(B, $B4X?t8F$S=P$7$N0z?t$H$7$F(B
$BEO$7$F$b(B, $B8F$S=P$5$l$?4X?t$K$O$=$NCM$N$_$,EO$5$l$k$?$a(B, $B8F$S=P$5$l$?4X(B
$B?t$O(B, $B$=$NJQ?t$NCf?H$r=q$-49$($k$3$H$,$G$-$J$$(B. $B$3$N$h$&$J>l9g$K(B, 
$B0z?t$H$7$FJQ?t$r;X$9%]%$%s%?$rM?$($k$3$H$K$h$j(B, $B$=$NJQ?t$NCf?H$r=q$-49$($k(B
$B$3$H$,2DG=$K$J$k(B. $BJQ?t(B {\tt a} $B$KBP$7(B, {\tt a} $B$r;X$9%]%$%s%?$NCM$O(B
{\tt \&a} $B$GF@$i$l$k(B. {\tt \&} $B$H(B {\tt *} $B$O8_$$$K5U$NA`:n$H$J$C$F$$$k(B. 
\end{itemize}

\subsection{$B9=B$BN(B}

$BNc$($PB?G\D9@0?t$r7W;;5!>e$GI=8=$9$k>l9g(B, $B3F7e$rI=$9@0?tG[Ns$*$h$SId9f(B, $B7e?t(B
$B$N>pJs$O:GDc8BI,MW$G$"$k(B. $B$3$l$i$O$=$l$>$l8DJL$NJQ?t$K3d$jEv$F$k$3$H$b2DG=(B
$B$G$"$k$,(B, $B0l$D$NBP>]$,J#?t$NJQ?t$KJL$l$FJ];}$5$l$k$N$O(B, $B$=$N<h07$$$r(B
$BJ#;($K$7(B, $B$^$?%W%m%0%i%`$N2DFI@-$NE@$+$i$b9%$^$7$/$J$$(B. $B$3$N$h$&$J(B
$B>l9g$K(B, $BJ#?t$NMWAG$r0l$D$K$^$H$a$?9=B$BN$rMQ$$$k$3$H$,$G$-$k(B. 
$BNc$($P(B, $B@0?t$O<!$N$h$&$J9=B$BN$GI=$9$3$H$,$G$-$k(B. 

\begin{verbatim}
struct Integer {
  int n; /* $B7e?t(B = |n|; n $B$NId9f$,$3$N@0?t$NId9f(B */
  unsigned int *digits; /* $B3F7e$rI=$9G[Ns$X$N%]%$%s%?(B */
};
\end{verbatim}
$B$b$A$m$s(B, $B%]%$%s%?(B {\tt digits} $B$OD9$5(B {\tt |n|} $B0J>e$NId9f$J$7(B
$B@0?tG[Ns$r;X$7$F$$$J$1$l$P$J$i$J$$(B.