私は現在、入力ファイルを受け入れるプログラムを実行しています。入力ファイルにはさまざまなパラメータがあり、そのうち3つを変更したり、再実行したりする必要があります。これら3つのパラメータの範囲は、1つの値が15、別の値が12、別の値が10なので、15 * 12 * 10( = 1800)プログラム用に作成する必要のある入力ファイル。出力ファイル名は、その実行のパラメーターとも一致する必要があります。明らかに、3375個の入力ファイルを手動で作成することは、時間がかかるだけでなく、人的エラーのリスクが大きいため、実用的ではありません。次のことについてサポートが必要です。
入力ファイルのパラメータを変更します。これはAWKを使用するか、シェルスクリプトを使用して実行できることを私は知っています。入力ファイルはプレーンテキスト(ASCII)です
パラメータが変更されるたびにスクリプトを再帰的に実行します。入力ファイルが次のようになっているとします。
入力ファイルのモックアップ
Aの値
1
Bの値
2
Cの値
4
Dの値
12
変更したい3つのパラメーターがA、B、Dであるとします。Aの各値が5単位離れており、3つの値を超えて実行したいとします。その場合、Aの可能な値は{1、6、11}になります。Bの可能な値は3単位離れており、4つの値{2、5、8、11}があり、Dの値は1つ離れています。それらのうちの2つです{12、13}繰り返し値を許可すると、処理したいセットは次のとおりです。
{1、2、12}
{1、5、12}
{1、8、12}
{1、11、12}
{1、2、13}
{1、5、13}
{1、8、13}
{1、11、13}
{6、2、12}
{6、5、12}
{6、8、12}
{6、11、12}
{6、2、13}
{6、5、13}
{6、8、13}
{6、11、13}
{11、2、12}
{11、5、12}
{11、8、12}
{11、11、12}
{11、2、13}
{11、5、13}
{11、8、13}
{11、11、13}
ここで、括弧内の各場所は{A、B、D}の値に対応します。
したがって、私の2つの問題は基本的に次のとおりです。1変更した入力ファイルを使用してプログラムを再帰的に実行するラッパーを作成します。23つの変数を変更して、すべての組み合わせを取得し、対応する入力ファイルをプログラムに渡します。
これが擬似コードでどのように見えるべきかを私が思うものです(私はこれが間違っていることを知っていますいくつかの助けが必要です):
A = 1
B = 2
D = 12
for B<11,
for A<11,
for D<13,
B+3, A+5, D++, program input file
#input file mockup
#Value for A
Some Expression for {A}
#Value for B
Some Expression for {B}
#Value for C
4
#Value for D
Some Expression for {D}
outputdirectory: mkdir Run.ABD
またはこのようなもの...
注:この質問を別のサイトに投稿して、他の誰かがそこで答えられるかどうかを確認しました。私はトローリングやクラウドソーシングをしていません。本物の助けを探しています。また、興味のある方は、地震時の変位モデルを実行しています。このモデルでは、通過する深さ、長さ、変位を変える必要があります。媒体全体で線形スリップと均一な粘度を想定しています。プログラムは正常で、準備ができています。変数パラメーターを使用して入力ファイルを変更する方法を理解する必要があります。
編集:
ロジックループは次のようになります。
A=1
B=2
D=12
While A<11
While B<11
While D<13
D++
B+3
A+5
これが正しい考えかどうか教えてください。変数を格納する方法がわからないため、ループを繰り返すたびに新しい入力ファイルまたは入力パラメーターが作成されます。
それともこのようなものですか?
A=1
While A<11
B = 2
While B<11
D=12
While D<13
D++
B+3
A+5