発言者: 田中徹
発言日: 2008 06/03 00:43
発言元: p0230a5.nigtnt01.ap.so-net.ne.jp
> 重複を無くして、0〜9の10個の並べ替えを作りたいと
> 思っています。
適当な回数、配列の要素をシャッフルする案です。
また、アイデアだけですが配列から1つずつ要素を取り出して並べる方法もありそうです。
# Ifor を用いたテーブルの記述に関しては body を append して
# 一気にはき出す方法が最近奥村先生の掲示板で . さんから
# 発言がありましたのでそちらを参考にしてください。
%% Re7301.tex
\documentclass[a4paper,fleqn]{jarticle}
\usepackage[perl]{emathRn}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\Dim{10}% 配列数
\def\ShuffleCnt{20}% 入れ替えを行う回数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 配列名
%% FOO 0 〜 \Dim-1 まで格納された配列
%% 入れ替え作業用配列
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\edef\WorkN{1}%
\hairetusyokika{Work}
\IAdd\Dim{1}\MaxIdx%
\edef\FOON{\Dim}
\Ifor\Idx{1}{\MaxIdx}\Do{%
\ISub\Idx{1}\Cnt%
\edefhairetu{FOO}{\Idx}{\Cnt}%
}%
\Ifor\Idx{1}{\MaxIdx}\Do{%
\hairetu{FOO}{\Idx}
}
\Ifor\Count{1}{\ShuffleCnt}\Do{%
\Iransuuretu[\Dim]{1}\IdxA%
\Iransuuretu[\Dim]{1}\IdxB%
\IAdd\IdxA{1}\IncIdxA%
\IAdd\IdxB{1}\IncIdxB%
%% 配列要素の入れ替え
\edefhairetu{Work}{1}{\hairetu{FOO}{\IncIdxA}}%
\edefhairetu{FOO}{\IncIdxA}{\hairetu{FOO}{\IncIdxB}}%
\edefhairetu{FOO}{\IncIdxB}{\hairetu{Work}{1}}%
%%
}%
\Ifor\Idx{1}{\MaxIdx}\Do{%
\hairetu{FOO}{\Idx}
}
%\prhairetu{FOO}
\end{document}
▼関連発言
│
└◆7301:ランダムな順列の作り方 [st] 06/02 21:55
└◆7302:Re:ランダムな順列の作り方 [田中徹] 06/03 00:43
└◆7303:Re[2]:ランダムな順列の作り方 [飯島 徹] 06/03 00:54
└◆7304:Re[3]:ランダムな順列の作り方 [田中徹] 06/03 01:09
└◆7305:Re[4]:ランダムな順列の作り方 [飯島 徹] 06/03 01:23
└◆7306:Re[5]:ランダムな順列の作り方 [飯島 徹] 06/03 01:55
└◆7308:Re[6]:ランダムな順列の作り方 [st] 06/03 11:46
├◆7316:Re[7]:ランダムな順列の作り方 [田中徹] 06/03 23:15
│└◆7317:Re[8]:ランダムな順列の作り方 [飯島 徹] 06/04 03:51
│ └◆7318:Re[9]:ランダムな順列の作り方 [st] 06/04 23:24
│ └◆7319:Re[10]:ランダムな順列の作り方 [飯島 徹] 06/05 01:41
│ └◆7320:Re[11]:ランダムな順列の作り方 [st] 06/05 05:09
└◆7321:Re[7]:ランダムな順列の作り方 [石原 守] 06/05 10:14
└◆7323:Re[8]:ランダムな順列の作り方 [st] 06/05 21:47<-last