1 つが変化すると、他のすべてが対応して合計 1 を維持するように変化する 5 の動的リストを想定します。他のものも反対方向に変化し、合計を 1 に保ちます。
そして、ここに私の試みたコードがあります:
v = {0.2, 0.2, 0.2, 0.2, 0.2};
v[[1]] = Dynamic[val];
Dynamic[val]
Slider[Dynamic[val]]
sum = 1;
Dynamic[v]
f := (#/(sum - #))*(sum - val) &
Slider[Dynamic[v[[1]], f /@ v], {0, 1}]
Slider[Dynamic[v[[2]], f /@ v], {0, 1}]
Slider[Dynamic[v[[3]], f /@ v], {0, 1}]
Slider[Dynamic[v[[4]], f /@ v], {0, 1}]
Slider[Dynamic[v[[5]], f /@ v], {0, 1}]
私の意図は、リスト v の要素が変更されたため、合計が 1 の規則に従ってリストを更新できるようにする純粋な関数 f を作成することでした。しかし、これは私が思ったようには機能しません。
前もって感謝します!