emath saloon (Read Only)

新規発言一覧最新記事過去一覧検索HOME

スレッド

└◇169:
emathRn.sty(乱数)を使ってみよう [石原 守] 11/30 20:46

 ├◇174:ふと思いついたのですが・・・ [dualignited] 12/01 21:00
 │└◇175:Re:ふと思いついたのですが・・・ [田中徹] 12/01 21:35
 │ └◇176:Re[2]:ふと思いついたのですが・・・ [dualiginited] 12/01 23:51
 │  └◇177:Re[3]:ふと思いついたのですが・・・ [石原 守] 12/02 06:56
 └◇178:Re:emathRn.sty(乱数)を使ってみよう [石原 守] 12/02 20:49<-last


169● emathRn.sty(乱数)を使ってみよう[ 石原 守 ] 2006 11/30 20:46
今度は奥村先生の掲示板にも質問がでた乱数を使ってみようということで
整数のかけ算を例にしてみました。fp-random.styが必要です。
使用上の注意として,コンパイルするたびに問題が違うということと
fp-random.styの仕様(乱数の種)の関係で同じ年月日時分に
コンパイルすると同じ問題になるということです
気になる方は乱数の発生をperlに任せるということもできます。

\documentclass[a4j,twocolumn]{jarticle}
\usepackage{emathRn}
%\usepackage{emathW}

\pagestyle{empty}

\newif\ifkaitou

\makeatletter
\def\CAR#1#2{%
  \edef\@kosuu{0}%
  \@for\@c:=#1\do{%
    \Incr\@kosuu
    \ifnum\@kosuu=1
      \edef#2{\@c}
    \fi
  }
}
\def\CDR#1#2{%
  \edef\@kosuu{0}%
  \@for\@c:=#1\do{%
    \Incr\@kosuu
    \ifnum\@kosuu=2
      \edef#2{\@c}
    \fi
    \ifnum\@kosuu>2
      \edef#2{#2,\@c}
    \fi
  }
}

\def\MonI{%
\CAR\kekka\@K% \K
\CDR\kekka\kekka% \kekka
\IMod\@K{89}\@K
\IAdd\@K{11}\@K

\CAR\kekka\@J% \J
\CDR\kekka\kekka% \kekka
\IMod\@J{7}\@J
\IAdd\@J{2}\@J

\IMod\@K{10}\@I
\ifnum\@I=0
\IAdd\@K{1}\@K
\fi
\IMod\@J{10}\@I
\ifnum\@I=0
\IAdd\@J{1}\@J
\fi

\IMul\@K\@J\@I
\ifkaitou
$\begin{array}[t]{lr}
 & \@K \\
\times & \@J \\\hline
 & \@I\\
\end{array}$
\else
$\begin{array}[t]{lr}
 & \@K \\
\times & \@J \\\hline
\end{array}$
\fi
}
\makeatother

\setlength{\columnseprule}{0.4pt}
\begin{document}

\rndsuji[80][1000]\kekka
\twocolumn[{\Large \bf 2けたと1けたのかけ算}\hfill
\underline{\hspace{10truemm}}年\underline{\hspace{10truemm}}組\underline{\hspace{10truemm}}番 氏名\underline{\hspace{50truemm}}\vspace{1zh}]
\kaitoutrue
%\kaitoufalse
\begin{enumerate}
\item 次の計算をせよ。
\begin{enumerate}[(1)]
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\end{enumerate}
\end{enumerate}
\end{document}

前回の三平方の定理と組み合わせることもできます
が辺の長さが1〜10くらいしか使えないのでおもしろくないと思います。
もうネタがない。いろいろなemathパッケージの活用法があったらお教えください。
スレッド一覧


174● ふと思いついたのですが・・・[ dualignited ] 2006 12/01 21:00
> いろいろなemathパッケージの活用法があったらお教えください。

こんなことできるわけないだろぉおお!!!

と言われるかもしれませんが,テキスト作成時にこんなこと
できないかな〜と思いついたので書きます

自分にはそんな技術はないので(いまのところは)
無理な話をしていたらごめんなさい(ーー;) ウッ

たとえば,計算問題(二次方程式など?)を
いっぱいリストに挙げておいて,そこからランダムに問題を参照して,
コンパイルするたびに毎回出来るテキストが違う・・・
みたいなのはどうでしょうw

出来たら面白いとは思います^^

スレッド一覧


175● Re:ふと思いついたのですが・・・[ 田中徹 ] 2006 12/01 21:35
> > いろいろなemathパッケージの活用法があったらお教えください。

> たとえば,計算問題(二次方程式など?)を
> いっぱいリストに挙げておいて,そこからランダムに問題を参照して,
> コンパイルするたびに毎回出来るテキストが違う・・・
> みたいなのはどうでしょうw
> 
> 出来たら面白いとは思います^^

石原さんの 「emath パッケージの活用法...」というものには該当しませんが
「コンパイルするたびに毎回出来るテキストが違う」ということであれば
下記のようなソフトもあります。
(オプションで emath パッケージが準備されています。)

http://www12.plala.or.jp/htown/mathtex/
スレッド一覧


176● Re[2]:ふと思いついたのですが・・・[ dualiginited ] 2006 12/01 23:51
> 石原さんの 「emath パッケージの活用法...」というものには該当しませんが
> 「コンパイルするたびに毎回出来るテキストが違う」ということであれば
> 下記のようなソフトもあります。

ほんとだ・・こんなのもあったのかw
非常に参考になりました(´∀`*)

なんだか便利すぎてちょっと複雑w

自分の疑問は解決したとして・・・他に活用法って(´ε`;)ウーン…

未熟者には浮かびませぬ(´Д`;)
スレッド一覧


177● Re[3]:ふと思いついたのですが・・・[ 石原 守 ] 2006 12/02 06:56
私はMathTeXも利用させていただいています。
でも,MathTeXはすべての範囲を網羅しているというわけではないので
乱数で数字が変わる問題(就職者向け割合練習問題など)を作っています。
乱数を使う例として長かったんで(頭の悪い書き方なので)今回短い例を
作って投稿しました。
emathの中にあまりつかわれないけど,使ってみるとすごく使いでのある
スタイル,コマンドを皆さんに教えていただけるとありがたいとおもいます。
「こんなのができたぞ」というのも教えていただけるといいかな。
スレッド一覧


178● Re:emathRn.sty(乱数)を使ってみよう[ 石原 守 ] 2006 12/02 20:49
基本的に「解答を自分で計算したくない」という考えで
一連のソースを書いているわけですが。
\MonIを色々変えると解答付のプリントがMathTeXのように
大量生産できるわけです。

\documentclass[a4j,twocolumn]{jarticle}
\usepackage{emathRn}
%\usepackage{emathW}

\pagestyle{empty}

\newif\ifkaitou

\makeatletter
\def\CAR#1#2{%
  \edef\@kosuu{0}%
  \@for\@c:=#1\do{%
    \Incr\@kosuu
    \ifnum\@kosuu=1
      \edef#2{\@c}
    \fi
  }
}
\def\CDR#1#2{%
  \edef\@kosuu{0}%
  \@for\@c:=#1\do{%
    \Incr\@kosuu
    \ifnum\@kosuu=2
      \edef#2{\@c}
    \fi
    \ifnum\@kosuu>2
      \edef#2{#2,\@c}
    \fi
  }
}

\def\MonI{%
\CAR\kekka\@K% \K
\CDR\kekka\kekka% \kekka
\IMod\@K{89}\@K
\IAdd\@K{11}\@K

\CAR\kekka\@J% \J
\CDR\kekka\kekka% \kekka
\IMod\@J{7}\@J
\IAdd\@J{2}\@J

\IMod\@K{10}\@I
\ifnum\@I=0
\IAdd\@K{1}\@K
\fi
\IMod\@J{10}\@I
\ifnum\@I=0
\IAdd\@J{1}\@J
\fi

\IMul\@K\@J\@I
\ifkaitou
$\begin{array}[t]{lr}
 & \@K \\
\times & \@J \\\hline
 & \@I\\
\end{array}$
\else
$\begin{array}[t]{lr}
 & \@K \\
\times & \@J \\\hline
\end{array}$
\fi
}
\makeatother

\setlength{\columnseprule}{0.4pt}
\begin{document}

\rndsuji[80][1000]\kekka
\edef\temp{\kekka}%乱数の列を保存して解答の時も同じ列を使う
\twocolumn[{\Large \bf 2けたと1けたのかけ算}\hfill
\underline{\hspace{10truemm}}年\underline{\hspace{10truemm}}組\underline{\hspace{10truemm}}番 氏名\underline{\hspace{50truemm}}\vspace{1zh}]
\kaitoufalse
\begin{enumerate}
\item 次の計算をせよ。
\begin{enumerate}[(1)]
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\end{enumerate}
\end{enumerate}

\edef\kekka{\temp}%保存しておいた乱数列を使う
\twocolumn[{\Large \bf 2けたと1けたのかけ算}\hfill
\underline{\hspace{10truemm}}年\underline{\hspace{10truemm}}組\underline{\hspace{10truemm}}番 氏名\underline{\hspace{50truemm}}\vspace{1zh}]
\kaitoutrue
\begin{enumerate}
\item 次の計算をせよ。
\begin{enumerate}[(1)]
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\item\MonI
\vfill
\newpage
\end{enumerate}
\end{enumerate}
\end{document}
スレッド一覧

CGIROOM