配列の中で、もっとも目標に近い数値のインデックスを取得するには?

altair_fukuoka
altair_fukuoka
Altair Employee
edited August 2021 in 質問と回答 (Q&A)

配列の中で、もっとも目標に近い数値のインデックスを取得するには?

Answers

  • altair_fukuoka
    altair_fukuoka
    Altair Employee
    edited August 2021

    直接の機能はありませんが、次のように行うことができます。indexofmin() という配列の中の最小値を取得する機能をうまく活用します。

     

    配列 a のなかで、もっとも 3 に近いインデックスを取得します。 { a= {1, 2, 3, 4, 5} } {a}  こうすると a=3 のとき b=0 ですので、3 に近ければ近いほど、b は 0 に近いです。 {  b = a-3  } {b}  単純な引き算だと、正だったり負だったりして、最小値としてとりずらいので、二乗して、必ず正の数にします。 3 に近いほど 正の0 に近くなります。 { c=b^2 } {c}  最小のインデックスを取ります。 {d=indexofmin(c)} {d}  そのインデックスを他の配列に使うならこうなります。 { e = { 7,8,9,10,11}} {e}  {e[d]}

     

    コメントなしの状態の物を添付しておきます。