Bash スクリプトは、実行にランダム シードを必要とする Python スクリプト (「main.py」) を制御します。シミュレーションのいくつかの実現を目指して、それぞれにランダムなランダムシードを用意し たいと思います。
(Bash スクリプトで) NEXP 整数のランダムな配列を初期化しようと考えましたが、適切に実行されていないと思います。実際、配列の初期化が間違っています。コードは次のとおりです。
NEXP=10
array_seed = [$NEXP]
for j in `seq 0 1 $NEXP`; do
array_seed[$j]=$RANDOM
echo $array_seed[$j]
done
for A in `seq 0 0.1 1`; do #A is a parameter of the simulation
for i in `seq 0 1 $NEXP`; do #10 realiz. of the process for each A
SEED=$array_seed[$i]
./main.py $A $SEED > output-$A-$i.dat
done
done
そしてここで私が得たもの
23041[0]
23041[1]
23041[2]
23041[3]
...
質問 #1 (解決済み):私は何を間違えましたか? $NEXP - 1 をseq内に配置して、0 から NEXP-1 までのインデックスを持つ配列を取得する方法は? 二重括弧で試してみましたが、うまくいきませんでした。
回答 (Ser Jothan Chanes による):
NEXP=10
array_seed = [$NEXP]
for i in `seq 0 1 $(($NEXP-1))`; do
array_seed[$i]=$RANDOM
echo ${array_seed[$i]}
done
質問 2:これは、シミュレーションを独立して実現するという問題に取り組む良い方法ですか? また、シミュレーション/実験間の相関をさらに減らすにはどうすればよいでしょうか?
質問 #3:最後に、Bash 疑似乱数ジェネレーターのシードも処理する必要がありますか?
ありがとうございました!