e$B$U$J$P$G$9!#e(B
ruby e$B$NI8=`%i%$%V%i%je(B Rational
e$B$rJXMx$K$D$+$o$;$F$b$i$C$F$$$^$9$,!“B.e(B
e$BEYLL$G2]Bj$,$J$$$o$1$G$O$”$j$^$;$s!#$=$3$G!"86$5$s$Ne(B rational
(http://raa.ruby-lang.org/project/rational/)
e$B$r:NMQ$9$k$H$$$&$N$O$I$&e(B
e$B$G$7$g$&!#e(B
e$BI8=`%i%$%V%i%j$N$J$+$G$b!“e(BRational
e$B$O=EMW$J$b$N$G!”$h$/$D$+$o$l$k$b$Ne(B
e$B$@$H;W$$$^$9!#$b$7B.EYLL$G$N2~A1$,L50UL#$G$J$$$J$i$P!"8!F$$7$F$_$F$[$7e(B
e$B$$$H;W$$$^$9!#e(B
e$B$D$$$G$G$9$,!"$$$/$D$+5$$,$D$$$?$3$H$r=q$-$^$9!#e(B
Rational(-13, 4).to_i e$B$O!"e(B-4 e$B$K$J$j$^$9$,!"e(Bruby e$B$Ne(B
to_i e$B$Oe(B truncate e$B$Ne(B
e$B$O$:$J$N$G!"e(B-3 e$B$K$J$i$J$$$H$$$1$J$$$N$G$O$J$$$+$H;W$$$^$9!#e(B
r = Rational(-13, 4)
r.to_i => -4
r.to_f => -3.25
r.to_f.to_i => -3
e$B0J2<!“e(Bdivmod e$B$O>2$r$H$C$?$b$N$HM>$j$K$J$k!”$?$H$($Pe(B Common
Lisp e$B$G$$$(e(B
e$B$P!"e(B
(multiple-value-list (floor -13/4 1) => (-4 3/4)
e$B$G!"$J$*$+$D!"e(Ba.divmod(b) == [a.div(b), a % b]
e$B$H$$$&A0Ds$G=q$-$^$9!#e(B
e$B86$5$s$Ne(B rational e$B$O!"e(Br.divmod(1) e$B$,e(B [-3, -1/4]
e$B$K$J$j$^$9e(B (div e$B$He(B % e$B$be(B)e$B!#e(B
ruby 1.8 e$B$G$O!"e(B-3.25.div(1) e$B$,e(B -3 e$B$K$J$j$^$9!#e(B1.9
e$B$G$O!"e(B-4 e$B$K$J$j$^$9!#e(B