次の「マップ」変数があります。
permutation[100]=-2;
permutation[3]=-1;
permutation[19]=0;
permutation[-20]=1;
すべての値を列挙する方法はありますか? 列挙順は気にしません。私は次のようなことを意味します(コードが機能していません):
Do[i+=3,{i,permutation}]
C++ から着想を得た変数を「マップ」するように伝えます。より良い検索結果を見つけるための正しい名前は何ですか?
次の「マップ」変数があります。
permutation[100]=-2;
permutation[3]=-1;
permutation[19]=0;
permutation[-20]=1;
すべての値を列挙する方法はありますか? 列挙順は気にしません。私は次のようなことを意味します(コードが機能していません):
Do[i+=3,{i,permutation}]
C++ から着想を得た変数を「マップ」するように伝えます。より良い検索結果を見つけるための正しい名前は何ですか?
あなたがしたことは、基本的に離散値の関数を定義することです。値のリストを保持している場合は、次のことができます。
permutation[100] = -2;
permutation[3] = -1;
permutation[19] = 0;
permutation[-20] = 1;
vals = {100, 3, 19, -20}
次のように使用します。
f /@ permutation /@ vals -> {f[-2], f[-1], f[0], f[1]}
またはループで..
Do[ Print[permutation[vals[[i]]]], {i, Length[vals]}]
そもそもデータを定義するためのより良い方法がおそらくあります..
これは時々役立つトリックです(ただし、正の引数に対してのみ機能します)
permutation = SparseArray[{}, {200}, Null]
permutation[[100]] = -2;
permutation[[3]] = -1;
permutation[[19]] = 0;
f /@ Select[ permutation, ! (TrueQ[# == Null]) &]
out: {f[-1], f[0], f[-2]}
ただし、最も簡単なのは、順列をリストにすることです。
permutation={}
AppendTo[permutation,{100,2}]
AppendTo[permutation,{3,-1}]
それからする
f[#[[2]]]& /@ permutation -> {f[2],f[-1]}